From db8e46e5c28f306d5f19ad174f114a8333c5314f Mon Sep 17 00:00:00 2001 From: Song Minjae Date: Wed, 28 Sep 2016 22:28:51 +0900 Subject: [PATCH] Proper LuaJ library, moved javadoc to proper directories Former-commit-id: 043c53ad3e9f0cb8f773ef5815397311c04fc8a4 Former-commit-id: b3dd82e122fc3e83b5ff02d1f911033d48d57825 --- lib/OpenComputers-JNLua.jar | Bin 131662 -> 0 bytes lib/OpenComputers-LuaJ.jar | Bin 456324 -> 0 bytes .../luaj-javadoc/allclasses-frame.html | 165 + .../luaj-javadoc/allclasses-noframe.html | 165 + lib/javadoc/luaj-javadoc/constant-values.html | 1026 ++ lib/javadoc/luaj-javadoc/deprecated-list.html | 162 + lib/javadoc/luaj-javadoc/help-doc.html | 223 + lib/javadoc/luaj-javadoc/index-all.html | 4623 +++++++++ lib/javadoc/luaj-javadoc/index.html | 73 + .../luaj-javadoc/org/luaj/vm2/Buffer.html | 602 ++ .../org/luaj/vm2/Globals.Compiler.html | 223 + .../org/luaj/vm2/Globals.Loader.html | 225 + .../org/luaj/vm2/Globals.Undumper.html | 220 + .../luaj-javadoc/org/luaj/vm2/Globals.html | 952 ++ .../luaj-javadoc/org/luaj/vm2/LoadState.html | 871 ++ .../luaj-javadoc/org/luaj/vm2/LocVars.html | 342 + .../luaj-javadoc/org/luaj/vm2/Lua.html | 2199 +++++ .../luaj-javadoc/org/luaj/vm2/LuaBoolean.html | 601 ++ .../luaj-javadoc/org/luaj/vm2/LuaClosure.html | 897 ++ .../luaj-javadoc/org/luaj/vm2/LuaDouble.html | 3314 +++++++ .../luaj-javadoc/org/luaj/vm2/LuaError.html | 496 + .../org/luaj/vm2/LuaFunction.html | 611 ++ .../luaj-javadoc/org/luaj/vm2/LuaInteger.html | 3111 ++++++ .../luaj-javadoc/org/luaj/vm2/LuaNil.html | 1092 +++ .../luaj-javadoc/org/luaj/vm2/LuaNumber.html | 750 ++ .../luaj-javadoc/org/luaj/vm2/LuaString.html | 3959 ++++++++ .../luaj-javadoc/org/luaj/vm2/LuaTable.html | 1786 ++++ .../org/luaj/vm2/LuaThread.State.html | 474 + .../luaj-javadoc/org/luaj/vm2/LuaThread.html | 871 ++ .../org/luaj/vm2/LuaUserdata.html | 1010 ++ .../luaj-javadoc/org/luaj/vm2/LuaValue.html | 8359 +++++++++++++++++ .../org/luaj/vm2/OrphanedThread.html | 256 + .../luaj-javadoc/org/luaj/vm2/Print.html | 480 + .../luaj-javadoc/org/luaj/vm2/Prototype.html | 600 ++ .../org/luaj/vm2/TailcallVarargs.html | 442 + .../luaj-javadoc/org/luaj/vm2/UpValue.html | 355 + .../luaj-javadoc/org/luaj/vm2/Upvaldesc.html | 331 + .../luaj-javadoc/org/luaj/vm2/Varargs.html | 1745 ++++ .../org/luaj/vm2/WeakTable.WeakSlot.html | 653 ++ .../luaj-javadoc/org/luaj/vm2/WeakTable.html | 492 + .../org/luaj/vm2/class-use/Buffer.html | 311 + .../luaj/vm2/class-use/Globals.Compiler.html | 209 + .../luaj/vm2/class-use/Globals.Loader.html | 239 + .../luaj/vm2/class-use/Globals.Undumper.html | 188 + .../org/luaj/vm2/class-use/Globals.html | 476 + .../org/luaj/vm2/class-use/LoadState.html | 144 + .../org/luaj/vm2/class-use/LocVars.html | 180 + .../org/luaj/vm2/class-use/Lua.html | 180 + .../org/luaj/vm2/class-use/LuaBoolean.html | 204 + .../org/luaj/vm2/class-use/LuaClosure.html | 314 + .../org/luaj/vm2/class-use/LuaDouble.html | 196 + .../org/luaj/vm2/class-use/LuaError.html | 144 + .../org/luaj/vm2/class-use/LuaFunction.html | 695 ++ .../org/luaj/vm2/class-use/LuaInteger.html | 334 + .../org/luaj/vm2/class-use/LuaNil.html | 144 + .../org/luaj/vm2/class-use/LuaNumber.html | 457 + .../org/luaj/vm2/class-use/LuaString.html | 878 ++ .../org/luaj/vm2/class-use/LuaTable.html | 424 + .../luaj/vm2/class-use/LuaThread.State.html | 180 + .../org/luaj/vm2/class-use/LuaThread.html | 295 + .../org/luaj/vm2/class-use/LuaUserdata.html | 214 + .../org/luaj/vm2/class-use/LuaValue.html | 5872 ++++++++++++ .../luaj/vm2/class-use/OrphanedThread.html | 144 + .../org/luaj/vm2/class-use/Print.html | 144 + .../org/luaj/vm2/class-use/Prototype.html | 446 + .../luaj/vm2/class-use/TailcallVarargs.html | 144 + .../org/luaj/vm2/class-use/UpValue.html | 180 + .../org/luaj/vm2/class-use/Upvaldesc.html | 180 + .../org/luaj/vm2/class-use/Varargs.html | 1755 ++++ .../vm2/class-use/WeakTable.WeakSlot.html | 180 + .../org/luaj/vm2/class-use/WeakTable.html | 144 + .../org/luaj/vm2/compiler/LuaC.html | 438 + .../org/luaj/vm2/compiler/class-use/LuaC.html | 180 + .../org/luaj/vm2/compiler/package-frame.html | 32 + .../luaj/vm2/compiler/package-summary.html | 157 + .../org/luaj/vm2/compiler/package-tree.html | 156 + .../org/luaj/vm2/compiler/package-use.html | 170 + .../org/luaj/vm2/lib/BaseLib.html | 488 + .../org/luaj/vm2/lib/Bit32Lib.html | 381 + .../org/luaj/vm2/lib/CoroutineLib.html | 388 + .../org/luaj/vm2/lib/DebugLib.CallStack.html | 194 + .../org/luaj/vm2/lib/DebugLib.html | 580 ++ .../org/luaj/vm2/lib/IoLib.File.html | 643 ++ .../luaj-javadoc/org/luaj/vm2/lib/IoLib.html | 1277 +++ .../org/luaj/vm2/lib/LibFunction.html | 832 ++ .../org/luaj/vm2/lib/MathLib.BinaryOp.html | 389 + .../org/luaj/vm2/lib/MathLib.UnaryOp.html | 385 + .../org/luaj/vm2/lib/MathLib.html | 562 ++ .../org/luaj/vm2/lib/OneArgFunction.html | 553 ++ .../luaj-javadoc/org/luaj/vm2/lib/OsLib.html | 781 ++ .../org/luaj/vm2/lib/PackageLib.html | 647 ++ .../vm2/lib/PackageLib.java_searcher.html | 356 + .../org/luaj/vm2/lib/PackageLib.loadlib.html | 341 + .../luaj/vm2/lib/PackageLib.lua_searcher.html | 356 + .../vm2/lib/PackageLib.preload_searcher.html | 356 + .../org/luaj/vm2/lib/PackageLib.require.html | 392 + .../luaj/vm2/lib/PackageLib.searchpath.html | 356 + .../org/luaj/vm2/lib/ResourceFinder.html | 234 + .../org/luaj/vm2/lib/StringLib.html | 396 + .../org/luaj/vm2/lib/TableLib.html | 383 + .../org/luaj/vm2/lib/ThreeArgFunction.html | 550 ++ .../org/luaj/vm2/lib/TwoArgFunction.html | 553 ++ .../org/luaj/vm2/lib/VarArgFunction.html | 576 ++ .../org/luaj/vm2/lib/ZeroArgFunction.html | 548 ++ .../org/luaj/vm2/lib/class-use/BaseLib.html | 210 + .../org/luaj/vm2/lib/class-use/Bit32Lib.html | 144 + .../luaj/vm2/lib/class-use/CoroutineLib.html | 144 + .../vm2/lib/class-use/DebugLib.CallStack.html | 144 + .../org/luaj/vm2/lib/class-use/DebugLib.html | 180 + .../luaj/vm2/lib/class-use/IoLib.File.html | 423 + .../org/luaj/vm2/lib/class-use/IoLib.html | 211 + .../luaj/vm2/lib/class-use/LibFunction.html | 464 + .../vm2/lib/class-use/MathLib.BinaryOp.html | 144 + .../vm2/lib/class-use/MathLib.UnaryOp.html | 144 + .../org/luaj/vm2/lib/class-use/MathLib.html | 211 + .../vm2/lib/class-use/OneArgFunction.html | 190 + .../org/luaj/vm2/lib/class-use/OsLib.html | 180 + .../luaj/vm2/lib/class-use/PackageLib.html | 180 + .../class-use/PackageLib.java_searcher.html | 180 + .../vm2/lib/class-use/PackageLib.loadlib.html | 144 + .../class-use/PackageLib.lua_searcher.html | 180 + .../PackageLib.preload_searcher.html | 180 + .../vm2/lib/class-use/PackageLib.require.html | 144 + .../lib/class-use/PackageLib.searchpath.html | 144 + .../vm2/lib/class-use/ResourceFinder.html | 239 + .../org/luaj/vm2/lib/class-use/StringLib.html | 144 + .../org/luaj/vm2/lib/class-use/TableLib.html | 144 + .../vm2/lib/class-use/ThreeArgFunction.html | 144 + .../vm2/lib/class-use/TwoArgFunction.html | 353 + .../vm2/lib/class-use/VarArgFunction.html | 241 + .../vm2/lib/class-use/ZeroArgFunction.html | 144 + .../org/luaj/vm2/lib/jme/JmeIoLib.html | 575 ++ .../org/luaj/vm2/lib/jme/JmePlatform.html | 337 + .../luaj/vm2/lib/jme/class-use/JmeIoLib.html | 144 + .../vm2/lib/jme/class-use/JmePlatform.html | 144 + .../org/luaj/vm2/lib/jme/package-frame.html | 34 + .../org/luaj/vm2/lib/jme/package-summary.html | 163 + .../org/luaj/vm2/lib/jme/package-tree.html | 165 + .../org/luaj/vm2/lib/jme/package-use.html | 144 + .../org/luaj/vm2/lib/jse/CoerceJavaToLua.html | 298 + .../org/luaj/vm2/lib/jse/CoerceLuaToJava.html | 285 + .../org/luaj/vm2/lib/jse/JseBaseLib.html | 438 + .../org/luaj/vm2/lib/jse/JseIoLib.html | 574 ++ .../org/luaj/vm2/lib/jse/JseMathLib.html | 454 + .../org/luaj/vm2/lib/jse/JseOsLib.html | 614 ++ .../org/luaj/vm2/lib/jse/JsePlatform.html | 353 + .../org/luaj/vm2/lib/jse/JseProcess.html | 323 + .../org/luaj/vm2/lib/jse/LuajavaLib.html | 418 + .../lib/jse/class-use/CoerceJavaToLua.html | 144 + .../lib/jse/class-use/CoerceLuaToJava.html | 144 + .../vm2/lib/jse/class-use/JseBaseLib.html | 144 + .../luaj/vm2/lib/jse/class-use/JseIoLib.html | 144 + .../vm2/lib/jse/class-use/JseMathLib.html | 144 + .../luaj/vm2/lib/jse/class-use/JseOsLib.html | 144 + .../vm2/lib/jse/class-use/JsePlatform.html | 144 + .../vm2/lib/jse/class-use/JseProcess.html | 144 + .../vm2/lib/jse/class-use/LuajavaLib.html | 144 + .../org/luaj/vm2/lib/jse/package-frame.html | 48 + .../org/luaj/vm2/lib/jse/package-summary.html | 193 + .../org/luaj/vm2/lib/jse/package-tree.html | 174 + .../org/luaj/vm2/lib/jse/package-use.html | 144 + .../org/luaj/vm2/lib/package-frame.html | 81 + .../org/luaj/vm2/lib/package-summary.html | 259 + .../org/luaj/vm2/lib/package-tree.html | 173 + .../org/luaj/vm2/lib/package-use.html | 377 + .../org/luaj/vm2/luajc/LuaJC.html | 426 + .../org/luaj/vm2/luajc/class-use/LuaJC.html | 180 + .../org/luaj/vm2/luajc/package-frame.html | 32 + .../org/luaj/vm2/luajc/package-summary.html | 158 + .../org/luaj/vm2/luajc/package-tree.html | 154 + .../org/luaj/vm2/luajc/package-use.html | 171 + .../org/luaj/vm2/package-frame.html | 119 + .../org/luaj/vm2/package-summary.html | 311 + .../org/luaj/vm2/package-tree.html | 180 + .../org/luaj/vm2/package-use.html | 556 ++ .../org/luaj/vm2/server/DefaultLauncher.html | 370 + .../org/luaj/vm2/server/Launcher.html | 283 + .../org/luaj/vm2/server/LuajClassLoader.html | 403 + .../vm2/server/class-use/DefaultLauncher.html | 144 + .../luaj/vm2/server/class-use/Launcher.html | 227 + .../vm2/server/class-use/LuajClassLoader.html | 144 + .../org/luaj/vm2/server/package-frame.html | 45 + .../org/luaj/vm2/server/package-summary.html | 177 + .../org/luaj/vm2/server/package-tree.html | 161 + .../org/luaj/vm2/server/package-use.html | 170 + lib/javadoc/luaj-javadoc/overview-frame.html | 54 + .../luaj-javadoc/overview-summary.html | 180 + lib/javadoc/luaj-javadoc/overview-tree.html | 203 + lib/javadoc/luaj-javadoc/package-list | 7 + .../luaj-javadoc/resources/inherit.gif | Bin 0 -> 57 bytes lib/javadoc/luaj-javadoc/serialized-form.html | 229 + lib/javadoc/{ => luaj-javadoc}/stylesheet.css | 0 .../{ => slick-javadoc}/allclasses-frame.html | 0 .../allclasses-noframe.html | 0 .../{ => slick-javadoc}/constant-values.html | 0 .../{ => slick-javadoc}/deprecated-list.html | 0 lib/javadoc/{ => slick-javadoc}/help-doc.html | 0 .../{ => slick-javadoc}/index-all.html | 0 lib/javadoc/{ => slick-javadoc}/index.html | 0 .../org/newdawn/slick/AngelCodeFont.html | 0 .../org/newdawn/slick/Animation.html | 0 .../org/newdawn/slick/AppGameContainer.html | 0 .../AppletGameContainer.ConsolePanel.html | 0 .../slick/AppletGameContainer.Container.html | 0 .../AppletGameContainer.ContainerPanel.html | 0 .../newdawn/slick/AppletGameContainer.html | 0 .../org/newdawn/slick/BasicGame.html | 0 .../org/newdawn/slick/BigImage.html | 0 .../org/newdawn/slick/CachedRender.html | 0 .../newdawn/slick/CanvasGameContainer.html | 0 .../org/newdawn/slick/Color.html | 0 .../slick/ControlledInputReciever.html | 0 .../org/newdawn/slick/ControllerListener.html | 0 .../org/newdawn/slick/Font.html | 0 .../org/newdawn/slick/Game.html | 0 .../org/newdawn/slick/GameContainer.html | 0 .../org/newdawn/slick/Graphics.html | 0 .../org/newdawn/slick/Image.html | 0 .../org/newdawn/slick/ImageBuffer.html | 0 .../org/newdawn/slick/Input.html | 0 .../org/newdawn/slick/InputListener.html | 0 .../org/newdawn/slick/KeyListener.html | 0 .../org/newdawn/slick/MouseListener.html | 0 .../org/newdawn/slick/Music.html | 0 .../org/newdawn/slick/MusicListener.html | 0 .../org/newdawn/slick/PackedSpriteSheet.html | 0 .../org/newdawn/slick/Renderable.html | 0 .../org/newdawn/slick/SavedState.html | 0 .../org/newdawn/slick/ScalableGame.html | 0 .../org/newdawn/slick/ShapeFill.html | 0 .../org/newdawn/slick/SlickException.html | 0 .../org/newdawn/slick/Sound.html | 0 .../org/newdawn/slick/SpriteSheet.html | 0 .../org/newdawn/slick/SpriteSheetFont.html | 0 .../org/newdawn/slick/TrueTypeFont.html | 0 .../slick/UnicodeFont.DisplayList.html | 0 .../org/newdawn/slick/UnicodeFont.html | 0 .../org/newdawn/slick/XMLPackedSheet.html | 0 .../slick/class-use/AngelCodeFont.html | 0 .../newdawn/slick/class-use/Animation.html | 0 .../slick/class-use/AppGameContainer.html | 0 .../AppletGameContainer.ConsolePanel.html | 0 .../AppletGameContainer.Container.html | 0 .../AppletGameContainer.ContainerPanel.html | 0 .../slick/class-use/AppletGameContainer.html | 0 .../newdawn/slick/class-use/BasicGame.html | 0 .../org/newdawn/slick/class-use/BigImage.html | 0 .../newdawn/slick/class-use/CachedRender.html | 0 .../slick/class-use/CanvasGameContainer.html | 0 .../org/newdawn/slick/class-use/Color.html | 0 .../class-use/ControlledInputReciever.html | 0 .../slick/class-use/ControllerListener.html | 0 .../org/newdawn/slick/class-use/Font.html | 0 .../org/newdawn/slick/class-use/Game.html | 0 .../slick/class-use/GameContainer.html | 0 .../org/newdawn/slick/class-use/Graphics.html | 0 .../org/newdawn/slick/class-use/Image.html | 0 .../newdawn/slick/class-use/ImageBuffer.html | 0 .../org/newdawn/slick/class-use/Input.html | 0 .../slick/class-use/InputListener.html | 0 .../newdawn/slick/class-use/KeyListener.html | 0 .../slick/class-use/MouseListener.html | 0 .../org/newdawn/slick/class-use/Music.html | 0 .../slick/class-use/MusicListener.html | 0 .../slick/class-use/PackedSpriteSheet.html | 0 .../newdawn/slick/class-use/Renderable.html | 0 .../newdawn/slick/class-use/SavedState.html | 0 .../newdawn/slick/class-use/ScalableGame.html | 0 .../newdawn/slick/class-use/ShapeFill.html | 0 .../slick/class-use/SlickException.html | 0 .../org/newdawn/slick/class-use/Sound.html | 0 .../newdawn/slick/class-use/SpriteSheet.html | 0 .../slick/class-use/SpriteSheetFont.html | 0 .../newdawn/slick/class-use/TrueTypeFont.html | 0 .../class-use/UnicodeFont.DisplayList.html | 0 .../newdawn/slick/class-use/UnicodeFont.html | 0 .../slick/class-use/XMLPackedSheet.html | 0 .../newdawn/slick/command/BasicCommand.html | 0 .../org/newdawn/slick/command/Command.html | 0 .../org/newdawn/slick/command/Control.html | 0 .../command/ControllerButtonControl.html | 0 .../command/ControllerDirectionControl.html | 0 .../newdawn/slick/command/InputProvider.html | 0 .../slick/command/InputProviderListener.html | 0 .../org/newdawn/slick/command/KeyControl.html | 0 .../slick/command/MouseButtonControl.html | 0 .../slick/command/class-use/BasicCommand.html | 0 .../slick/command/class-use/Command.html | 0 .../slick/command/class-use/Control.html | 0 .../class-use/ControllerButtonControl.html | 0 .../class-use/ControllerDirectionControl.html | 0 .../command/class-use/InputProvider.html | 0 .../class-use/InputProviderListener.html | 0 .../slick/command/class-use/KeyControl.html | 0 .../command/class-use/MouseButtonControl.html | 0 .../newdawn/slick/command/package-frame.html | 0 .../slick/command/package-summary.html | 0 .../newdawn/slick/command/package-tree.html | 0 .../newdawn/slick/command/package-use.html | 0 .../org/newdawn/slick/fills/GradientFill.html | 0 .../slick/fills/class-use/GradientFill.html | 0 .../newdawn/slick/fills/package-frame.html | 0 .../newdawn/slick/fills/package-summary.html | 0 .../org/newdawn/slick/fills/package-tree.html | 0 .../org/newdawn/slick/fills/package-use.html | 0 .../org/newdawn/slick/font/Glyph.html | 0 .../org/newdawn/slick/font/GlyphPage.html | 0 .../org/newdawn/slick/font/HieroSettings.html | 0 .../newdawn/slick/font/class-use/Glyph.html | 0 .../slick/font/class-use/GlyphPage.html | 0 .../slick/font/class-use/HieroSettings.html | 0 .../slick/font/effects/ColorEffect.html | 0 .../effects/ConfigurableEffect.Value.html | 0 .../font/effects/ConfigurableEffect.html | 0 .../newdawn/slick/font/effects/Effect.html | 0 .../slick/font/effects/EffectUtil.html | 0 .../slick/font/effects/FilterEffect.html | 0 .../slick/font/effects/GradientEffect.html | 0 .../slick/font/effects/OutlineEffect.html | 0 .../font/effects/OutlineWobbleEffect.html | 0 .../font/effects/OutlineZigzagEffect.html | 0 .../slick/font/effects/ShadowEffect.html | 0 .../font/effects/class-use/ColorEffect.html | 0 .../class-use/ConfigurableEffect.Value.html | 0 .../effects/class-use/ConfigurableEffect.html | 0 .../slick/font/effects/class-use/Effect.html | 0 .../font/effects/class-use/EffectUtil.html | 0 .../font/effects/class-use/FilterEffect.html | 0 .../effects/class-use/GradientEffect.html | 0 .../font/effects/class-use/OutlineEffect.html | 0 .../class-use/OutlineWobbleEffect.html | 0 .../class-use/OutlineZigzagEffect.html | 0 .../font/effects/class-use/ShadowEffect.html | 0 .../slick/font/effects/package-frame.html | 0 .../slick/font/effects/package-summary.html | 0 .../slick/font/effects/package-tree.html | 0 .../slick/font/effects/package-use.html | 0 .../org/newdawn/slick/font/package-frame.html | 0 .../newdawn/slick/font/package-summary.html | 0 .../org/newdawn/slick/font/package-tree.html | 0 .../org/newdawn/slick/font/package-use.html | 0 .../newdawn/slick/geom/BasicTriangulator.html | 0 .../org/newdawn/slick/geom/Circle.html | 0 .../org/newdawn/slick/geom/Curve.html | 0 .../org/newdawn/slick/geom/Ellipse.html | 0 .../slick/geom/GeomUtil.HitResult.html | 0 .../org/newdawn/slick/geom/GeomUtil.html | 0 .../newdawn/slick/geom/GeomUtilListener.html | 0 .../org/newdawn/slick/geom/Line.html | 0 .../slick/geom/MannTriangulator.PointBag.html | 0 .../newdawn/slick/geom/MannTriangulator.html | 0 .../org/newdawn/slick/geom/MorphShape.html | 0 .../newdawn/slick/geom/NeatTriangulator.html | 0 .../newdawn/slick/geom/OverTriangulator.html | 0 .../org/newdawn/slick/geom/Path.html | 0 .../org/newdawn/slick/geom/Point.html | 0 .../org/newdawn/slick/geom/Polygon.html | 0 .../org/newdawn/slick/geom/Rectangle.html | 0 .../newdawn/slick/geom/RoundedRectangle.html | 0 .../org/newdawn/slick/geom/Shape.html | 0 .../org/newdawn/slick/geom/ShapeRenderer.html | 0 .../newdawn/slick/geom/TexCoordGenerator.html | 0 .../org/newdawn/slick/geom/Transform.html | 0 .../org/newdawn/slick/geom/Triangulator.html | 0 .../org/newdawn/slick/geom/Vector2f.html | 0 .../geom/class-use/BasicTriangulator.html | 0 .../newdawn/slick/geom/class-use/Circle.html | 0 .../newdawn/slick/geom/class-use/Curve.html | 0 .../newdawn/slick/geom/class-use/Ellipse.html | 0 .../geom/class-use/GeomUtil.HitResult.html | 0 .../slick/geom/class-use/GeomUtil.html | 0 .../geom/class-use/GeomUtilListener.html | 0 .../newdawn/slick/geom/class-use/Line.html | 0 .../class-use/MannTriangulator.PointBag.html | 0 .../geom/class-use/MannTriangulator.html | 0 .../slick/geom/class-use/MorphShape.html | 0 .../geom/class-use/NeatTriangulator.html | 0 .../geom/class-use/OverTriangulator.html | 0 .../newdawn/slick/geom/class-use/Path.html | 0 .../newdawn/slick/geom/class-use/Point.html | 0 .../newdawn/slick/geom/class-use/Polygon.html | 0 .../slick/geom/class-use/Rectangle.html | 0 .../geom/class-use/RoundedRectangle.html | 0 .../newdawn/slick/geom/class-use/Shape.html | 0 .../slick/geom/class-use/ShapeRenderer.html | 0 .../geom/class-use/TexCoordGenerator.html | 0 .../slick/geom/class-use/Transform.html | 0 .../slick/geom/class-use/Triangulator.html | 0 .../slick/geom/class-use/Vector2f.html | 0 .../org/newdawn/slick/geom/package-frame.html | 0 .../newdawn/slick/geom/package-summary.html | 0 .../org/newdawn/slick/geom/package-tree.html | 0 .../org/newdawn/slick/geom/package-use.html | 0 .../newdawn/slick/gui/AbstractComponent.html | 0 .../org/newdawn/slick/gui/BasicComponent.html | 0 .../newdawn/slick/gui/ComponentListener.html | 0 .../org/newdawn/slick/gui/GUIContext.html | 0 .../org/newdawn/slick/gui/MouseOverArea.html | 0 .../org/newdawn/slick/gui/TextField.html | 0 .../gui/class-use/AbstractComponent.html | 0 .../slick/gui/class-use/BasicComponent.html | 0 .../gui/class-use/ComponentListener.html | 0 .../slick/gui/class-use/GUIContext.html | 0 .../slick/gui/class-use/MouseOverArea.html | 0 .../slick/gui/class-use/TextField.html | 0 .../org/newdawn/slick/gui/package-frame.html | 0 .../newdawn/slick/gui/package-summary.html | 0 .../org/newdawn/slick/gui/package-tree.html | 0 .../org/newdawn/slick/gui/package-use.html | 0 .../newdawn/slick/imageout/ImageIOWriter.html | 0 .../org/newdawn/slick/imageout/ImageOut.html | 0 .../newdawn/slick/imageout/ImageWriter.html | 0 .../slick/imageout/ImageWriterFactory.html | 0 .../org/newdawn/slick/imageout/TGAWriter.html | 0 .../imageout/class-use/ImageIOWriter.html | 0 .../slick/imageout/class-use/ImageOut.html | 0 .../slick/imageout/class-use/ImageWriter.html | 0 .../class-use/ImageWriterFactory.html | 0 .../slick/imageout/class-use/TGAWriter.html | 0 .../newdawn/slick/imageout/package-frame.html | 0 .../slick/imageout/package-summary.html | 0 .../newdawn/slick/imageout/package-tree.html | 0 .../newdawn/slick/imageout/package-use.html | 0 .../slick/loading/DeferredResource.html | 0 .../newdawn/slick/loading/LoadingList.html | 0 .../loading/class-use/DeferredResource.html | 0 .../slick/loading/class-use/LoadingList.html | 0 .../newdawn/slick/loading/package-frame.html | 0 .../slick/loading/package-summary.html | 0 .../newdawn/slick/loading/package-tree.html | 0 .../newdawn/slick/loading/package-use.html | 0 .../org/newdawn/slick/muffin/FileMuffin.html | 0 .../org/newdawn/slick/muffin/Muffin.html | 0 .../newdawn/slick/muffin/WebstartMuffin.html | 0 .../slick/muffin/class-use/FileMuffin.html | 0 .../slick/muffin/class-use/Muffin.html | 0 .../muffin/class-use/WebstartMuffin.html | 0 .../newdawn/slick/muffin/package-frame.html | 0 .../newdawn/slick/muffin/package-summary.html | 0 .../newdawn/slick/muffin/package-tree.html | 0 .../org/newdawn/slick/muffin/package-use.html | 0 .../org/newdawn/slick/openal/AiffData.html | 0 .../org/newdawn/slick/openal/Audio.html | 0 .../org/newdawn/slick/openal/AudioImpl.html | 0 .../org/newdawn/slick/openal/AudioLoader.html | 0 .../newdawn/slick/openal/DeferredSound.html | 0 .../org/newdawn/slick/openal/MODSound.html | 0 .../org/newdawn/slick/openal/NullAudio.html | 0 .../org/newdawn/slick/openal/OggData.html | 0 .../org/newdawn/slick/openal/OggDecoder.html | 0 .../newdawn/slick/openal/OggInputStream.html | 0 .../slick/openal/OpenALStreamPlayer.html | 0 .../org/newdawn/slick/openal/SoundStore.html | 0 .../org/newdawn/slick/openal/StreamSound.html | 0 .../org/newdawn/slick/openal/WaveData.html | 0 .../slick/openal/class-use/AiffData.html | 0 .../newdawn/slick/openal/class-use/Audio.html | 0 .../slick/openal/class-use/AudioImpl.html | 0 .../slick/openal/class-use/AudioLoader.html | 0 .../slick/openal/class-use/DeferredSound.html | 0 .../slick/openal/class-use/MODSound.html | 0 .../slick/openal/class-use/NullAudio.html | 0 .../slick/openal/class-use/OggData.html | 0 .../slick/openal/class-use/OggDecoder.html | 0 .../openal/class-use/OggInputStream.html | 0 .../openal/class-use/OpenALStreamPlayer.html | 0 .../slick/openal/class-use/SoundStore.html | 0 .../slick/openal/class-use/StreamSound.html | 0 .../slick/openal/class-use/WaveData.html | 0 .../newdawn/slick/openal/package-frame.html | 0 .../newdawn/slick/openal/package-summary.html | 0 .../newdawn/slick/openal/package-tree.html | 0 .../org/newdawn/slick/openal/package-use.html | 0 .../slick/opengl/CompositeIOException.html | 0 .../slick/opengl/CompositeImageData.html | 0 .../newdawn/slick/opengl/CursorLoader.html | 0 .../newdawn/slick/opengl/DeferredTexture.html | 0 .../newdawn/slick/opengl/EmptyImageData.html | 0 .../org/newdawn/slick/opengl/GLUtils.html | 0 .../org/newdawn/slick/opengl/ImageData.html | 0 .../slick/opengl/ImageDataFactory.html | 0 .../slick/opengl/ImageIOImageData.html | 0 .../slick/opengl/InternalTextureLoader.html | 0 .../slick/opengl/LoadableImageData.html | 0 .../slick/opengl/PNGDecoder.Format.html | 0 .../org/newdawn/slick/opengl/PNGDecoder.html | 0 .../newdawn/slick/opengl/PNGImageData.html | 0 .../newdawn/slick/opengl/SlickCallable.html | 0 .../newdawn/slick/opengl/TGAImageData.html | 0 .../org/newdawn/slick/opengl/Texture.html | 0 .../org/newdawn/slick/opengl/TextureImpl.html | 0 .../newdawn/slick/opengl/TextureLoader.html | 0 .../class-use/CompositeIOException.html | 0 .../opengl/class-use/CompositeImageData.html | 0 .../slick/opengl/class-use/CursorLoader.html | 0 .../opengl/class-use/DeferredTexture.html | 0 .../opengl/class-use/EmptyImageData.html | 0 .../slick/opengl/class-use/GLUtils.html | 0 .../slick/opengl/class-use/ImageData.html | 0 .../opengl/class-use/ImageDataFactory.html | 0 .../opengl/class-use/ImageIOImageData.html | 0 .../class-use/InternalTextureLoader.html | 0 .../opengl/class-use/LoadableImageData.html | 0 .../opengl/class-use/PNGDecoder.Format.html | 0 .../slick/opengl/class-use/PNGDecoder.html | 0 .../slick/opengl/class-use/PNGImageData.html | 0 .../slick/opengl/class-use/SlickCallable.html | 0 .../slick/opengl/class-use/TGAImageData.html | 0 .../slick/opengl/class-use/Texture.html | 0 .../slick/opengl/class-use/TextureImpl.html | 0 .../slick/opengl/class-use/TextureLoader.html | 0 .../newdawn/slick/opengl/package-frame.html | 0 .../newdawn/slick/opengl/package-summary.html | 0 .../newdawn/slick/opengl/package-tree.html | 0 .../org/newdawn/slick/opengl/package-use.html | 0 .../slick/opengl/pbuffer/FBOGraphics.html | 0 .../slick/opengl/pbuffer/GraphicsFactory.html | 0 .../slick/opengl/pbuffer/PBufferGraphics.html | 0 .../opengl/pbuffer/PBufferUniqueGraphics.html | 0 .../opengl/pbuffer/class-use/FBOGraphics.html | 0 .../pbuffer/class-use/GraphicsFactory.html | 0 .../pbuffer/class-use/PBufferGraphics.html | 0 .../class-use/PBufferUniqueGraphics.html | 0 .../slick/opengl/pbuffer/package-frame.html | 0 .../slick/opengl/pbuffer/package-summary.html | 0 .../slick/opengl/pbuffer/package-tree.html | 0 .../slick/opengl/pbuffer/package-use.html | 0 .../renderer/DefaultLineStripRenderer.html | 0 .../renderer/ImmediateModeOGLRenderer.html | 0 .../opengl/renderer/LineStripRenderer.html | 0 .../renderer/QuadBasedLineStripRenderer.html | 0 .../slick/opengl/renderer/Renderer.html | 0 .../newdawn/slick/opengl/renderer/SGL.html | 0 .../slick/opengl/renderer/VAOGLRenderer.html | 0 .../class-use/DefaultLineStripRenderer.html | 0 .../class-use/ImmediateModeOGLRenderer.html | 0 .../renderer/class-use/LineStripRenderer.html | 0 .../class-use/QuadBasedLineStripRenderer.html | 0 .../opengl/renderer/class-use/Renderer.html | 0 .../slick/opengl/renderer/class-use/SGL.html | 0 .../renderer/class-use/VAOGLRenderer.html | 0 .../slick/opengl/renderer/package-frame.html | 0 .../opengl/renderer/package-summary.html | 0 .../slick/opengl/renderer/package-tree.html | 0 .../slick/opengl/renderer/package-use.html | 0 .../org/newdawn/slick/package-frame.html | 0 .../org/newdawn/slick/package-summary.html | 0 .../org/newdawn/slick/package-tree.html | 0 .../org/newdawn/slick/package-use.html | 0 .../ConfigurableEmitter.ColorRecord.html | 0 ...onfigurableEmitter.LinearInterpolator.html | 0 .../ConfigurableEmitter.RandomValue.html | 0 .../particles/ConfigurableEmitter.Range.html | 0 .../ConfigurableEmitter.SimpleValue.html | 0 .../particles/ConfigurableEmitter.Value.html | 0 .../slick/particles/ConfigurableEmitter.html | 0 .../particles/ConfigurableEmitterFactory.html | 0 .../org/newdawn/slick/particles/Particle.html | 0 .../slick/particles/ParticleEmitter.html | 0 .../newdawn/slick/particles/ParticleIO.html | 0 .../slick/particles/ParticleSystem.html | 0 .../ConfigurableEmitter.ColorRecord.html | 0 ...onfigurableEmitter.LinearInterpolator.html | 0 .../ConfigurableEmitter.RandomValue.html | 0 .../class-use/ConfigurableEmitter.Range.html | 0 .../ConfigurableEmitter.SimpleValue.html | 0 .../class-use/ConfigurableEmitter.Value.html | 0 .../class-use/ConfigurableEmitter.html | 0 .../class-use/ConfigurableEmitterFactory.html | 0 .../slick/particles/class-use/Particle.html | 0 .../particles/class-use/ParticleEmitter.html | 0 .../slick/particles/class-use/ParticleIO.html | 0 .../particles/class-use/ParticleSystem.html | 0 .../slick/particles/effects/FireEmitter.html | 0 .../effects/class-use/FireEmitter.html | 0 .../particles/effects/package-frame.html | 0 .../particles/effects/package-summary.html | 0 .../slick/particles/effects/package-tree.html | 0 .../slick/particles/effects/package-use.html | 0 .../slick/particles/package-frame.html | 0 .../slick/particles/package-summary.html | 0 .../newdawn/slick/particles/package-tree.html | 0 .../newdawn/slick/particles/package-use.html | 0 .../newdawn/slick/state/BasicGameState.html | 0 .../org/newdawn/slick/state/GameState.html | 0 .../newdawn/slick/state/StateBasedGame.html | 0 .../slick/state/class-use/BasicGameState.html | 0 .../slick/state/class-use/GameState.html | 0 .../slick/state/class-use/StateBasedGame.html | 0 .../newdawn/slick/state/package-frame.html | 0 .../newdawn/slick/state/package-summary.html | 0 .../org/newdawn/slick/state/package-tree.html | 0 .../org/newdawn/slick/state/package-use.html | 0 .../state/transition/BlobbyTransition.html | 0 .../state/transition/CombinedTransition.html | 0 .../transition/CrossStateTransition.html | 0 .../state/transition/EmptyTransition.html | 0 .../state/transition/FadeInTransition.html | 0 .../state/transition/FadeOutTransition.html | 0 .../transition/HorizontalSplitTransition.html | 0 .../state/transition/RotateTransition.html | 0 .../state/transition/SelectTransition.html | 0 .../slick/state/transition/Transition.html | 0 .../transition/VerticalSplitTransition.html | 0 .../class-use/BlobbyTransition.html | 0 .../class-use/CombinedTransition.html | 0 .../class-use/CrossStateTransition.html | 0 .../transition/class-use/EmptyTransition.html | 0 .../class-use/FadeInTransition.html | 0 .../class-use/FadeOutTransition.html | 0 .../class-use/HorizontalSplitTransition.html | 0 .../class-use/RotateTransition.html | 0 .../class-use/SelectTransition.html | 0 .../transition/class-use/Transition.html | 0 .../class-use/VerticalSplitTransition.html | 0 .../slick/state/transition/package-frame.html | 0 .../state/transition/package-summary.html | 0 .../slick/state/transition/package-tree.html | 0 .../slick/state/transition/package-use.html | 0 .../org/newdawn/slick/svg/Diagram.html | 0 .../org/newdawn/slick/svg/Figure.html | 0 .../org/newdawn/slick/svg/Gradient.html | 0 .../org/newdawn/slick/svg/InkscapeLoader.html | 0 .../newdawn/slick/svg/LinearGradientFill.html | 0 .../org/newdawn/slick/svg/Loader.html | 0 .../newdawn/slick/svg/NonGeometricData.html | 0 .../newdawn/slick/svg/ParsingException.html | 0 .../newdawn/slick/svg/RadialGradientFill.html | 0 .../org/newdawn/slick/svg/SVGMorph.html | 0 .../slick/svg/SimpleDiagramRenderer.html | 0 .../newdawn/slick/svg/class-use/Diagram.html | 0 .../newdawn/slick/svg/class-use/Figure.html | 0 .../newdawn/slick/svg/class-use/Gradient.html | 0 .../slick/svg/class-use/InkscapeLoader.html | 0 .../svg/class-use/LinearGradientFill.html | 0 .../newdawn/slick/svg/class-use/Loader.html | 0 .../slick/svg/class-use/NonGeometricData.html | 0 .../slick/svg/class-use/ParsingException.html | 0 .../svg/class-use/RadialGradientFill.html | 0 .../newdawn/slick/svg/class-use/SVGMorph.html | 0 .../svg/class-use/SimpleDiagramRenderer.html | 0 .../slick/svg/inkscape/DefsProcessor.html | 0 .../slick/svg/inkscape/ElementProcessor.html | 0 .../slick/svg/inkscape/EllipseProcessor.html | 0 .../slick/svg/inkscape/GroupProcessor.html | 0 .../inkscape/InkscapeNonGeometricData.html | 0 .../slick/svg/inkscape/LineProcessor.html | 0 .../slick/svg/inkscape/PathProcessor.html | 0 .../slick/svg/inkscape/PolygonProcessor.html | 0 .../slick/svg/inkscape/RectProcessor.html | 0 .../slick/svg/inkscape/UseProcessor.html | 0 .../org/newdawn/slick/svg/inkscape/Util.html | 0 .../svg/inkscape/class-use/DefsProcessor.html | 0 .../inkscape/class-use/ElementProcessor.html | 0 .../inkscape/class-use/EllipseProcessor.html | 0 .../inkscape/class-use/GroupProcessor.html | 0 .../class-use/InkscapeNonGeometricData.html | 0 .../svg/inkscape/class-use/LineProcessor.html | 0 .../svg/inkscape/class-use/PathProcessor.html | 0 .../inkscape/class-use/PolygonProcessor.html | 0 .../svg/inkscape/class-use/RectProcessor.html | 0 .../svg/inkscape/class-use/UseProcessor.html | 0 .../slick/svg/inkscape/class-use/Util.html | 0 .../slick/svg/inkscape/package-frame.html | 0 .../slick/svg/inkscape/package-summary.html | 0 .../slick/svg/inkscape/package-tree.html | 0 .../slick/svg/inkscape/package-use.html | 0 .../org/newdawn/slick/svg/package-frame.html | 0 .../newdawn/slick/svg/package-summary.html | 0 .../org/newdawn/slick/svg/package-tree.html | 0 .../org/newdawn/slick/svg/package-use.html | 0 .../org/newdawn/slick/tests/AlphaMapTest.html | 0 .../newdawn/slick/tests/AnimationTest.html | 0 .../newdawn/slick/tests/AntiAliasTest.html | 0 .../org/newdawn/slick/tests/BigImageTest.html | 0 .../slick/tests/BigSpriteSheetTest.html | 0 .../newdawn/slick/tests/CachedRenderTest.html | 0 .../slick/tests/CanvasContainerTest.html | 0 .../newdawn/slick/tests/CanvasSizeTest.html | 0 .../org/newdawn/slick/tests/ClipTest.html | 0 .../slick/tests/CopyAreaAlphaTest.html | 0 .../org/newdawn/slick/tests/CurveTest.html | 0 .../slick/tests/DeferredLoadingTest.html | 0 .../slick/tests/DistanceFieldTest.html | 0 .../newdawn/slick/tests/DoubleClickTest.html | 0 .../slick/tests/DuplicateEmitterTest.html | 0 .../org/newdawn/slick/tests/FlashTest.html | 0 .../slick/tests/FontPerformanceTest.html | 0 .../org/newdawn/slick/tests/FontTest.html | 0 .../org/newdawn/slick/tests/GUITest.html | 0 .../newdawn/slick/tests/GeomAccuracyTest.html | 0 .../org/newdawn/slick/tests/GeomTest.html | 0 .../org/newdawn/slick/tests/GeomUtilTest.html | 0 .../newdawn/slick/tests/GeomUtilTileTest.html | 0 .../slick/tests/GradientImageTest.html | 0 .../org/newdawn/slick/tests/GradientTest.html | 0 .../org/newdawn/slick/tests/GraphicsTest.html | 0 .../slick/tests/ImageBufferEndianTest.html | 0 .../newdawn/slick/tests/ImageBufferTest.html | 0 .../newdawn/slick/tests/ImageCornerTest.html | 0 .../slick/tests/ImageGraphicsTest.html | 0 .../org/newdawn/slick/tests/ImageMemTest.html | 0 .../org/newdawn/slick/tests/ImageOutTest.html | 0 .../newdawn/slick/tests/ImageReadTest.html | 0 .../org/newdawn/slick/tests/ImageTest.html | 0 .../org/newdawn/slick/tests/InkscapeTest.html | 0 .../slick/tests/InputProviderTest.html | 0 .../org/newdawn/slick/tests/InputTest.html | 0 .../org/newdawn/slick/tests/IsoTiledTest.html | 0 .../newdawn/slick/tests/KeyRepeatTest.html | 0 .../org/newdawn/slick/tests/LameTest.html | 0 .../newdawn/slick/tests/LineRenderTest.html | 0 .../org/newdawn/slick/tests/MorphSVGTest.html | 0 .../newdawn/slick/tests/MorphShapeTest.html | 0 .../slick/tests/MusicListenerTest.html | 0 .../org/newdawn/slick/tests/NavMeshTest.html | 0 .../newdawn/slick/tests/PackedSheetTest.html | 0 .../org/newdawn/slick/tests/ParticleTest.html | 0 .../org/newdawn/slick/tests/PedigreeTest.html | 0 .../org/newdawn/slick/tests/PolygonTest.html | 0 .../org/newdawn/slick/tests/PureFontTest.html | 0 .../newdawn/slick/tests/SavedStateTest.html | 0 .../org/newdawn/slick/tests/ScalableTest.html | 0 .../org/newdawn/slick/tests/ShapeTest.html | 0 .../slick/tests/SlickCallableTest.html | 0 .../slick/tests/SoundPositionTest.html | 0 .../org/newdawn/slick/tests/SoundTest.html | 0 .../org/newdawn/slick/tests/SoundURLTest.html | 0 .../slick/tests/SpriteSheetFontTest.html | 0 .../newdawn/slick/tests/StateBasedTest.html | 0 .../org/newdawn/slick/tests/TestBox.html | 0 .../org/newdawn/slick/tests/TestUtils.html | 0 .../newdawn/slick/tests/TexturePaintTest.html | 0 .../org/newdawn/slick/tests/TileMapTest.html | 0 .../newdawn/slick/tests/TransformTest.html | 0 .../newdawn/slick/tests/TransformTest2.html | 0 .../newdawn/slick/tests/TransitionTest.html | 0 .../slick/tests/TransparentColorTest.html | 0 .../tests/TrueTypeFontPerformanceTest.html | 0 .../newdawn/slick/tests/UnicodeFontTest.html | 0 .../slick/tests/class-use/AlphaMapTest.html | 0 .../slick/tests/class-use/AnimationTest.html | 0 .../slick/tests/class-use/AntiAliasTest.html | 0 .../slick/tests/class-use/BigImageTest.html | 0 .../tests/class-use/BigSpriteSheetTest.html | 0 .../tests/class-use/CachedRenderTest.html | 0 .../tests/class-use/CanvasContainerTest.html | 0 .../slick/tests/class-use/CanvasSizeTest.html | 0 .../slick/tests/class-use/ClipTest.html | 0 .../tests/class-use/CopyAreaAlphaTest.html | 0 .../slick/tests/class-use/CurveTest.html | 0 .../tests/class-use/DeferredLoadingTest.html | 0 .../tests/class-use/DistanceFieldTest.html | 0 .../tests/class-use/DoubleClickTest.html | 0 .../tests/class-use/DuplicateEmitterTest.html | 0 .../slick/tests/class-use/FlashTest.html | 0 .../tests/class-use/FontPerformanceTest.html | 0 .../slick/tests/class-use/FontTest.html | 0 .../slick/tests/class-use/GUITest.html | 0 .../tests/class-use/GeomAccuracyTest.html | 0 .../slick/tests/class-use/GeomTest.html | 0 .../slick/tests/class-use/GeomUtilTest.html | 0 .../tests/class-use/GeomUtilTileTest.html | 0 .../tests/class-use/GradientImageTest.html | 0 .../slick/tests/class-use/GradientTest.html | 0 .../slick/tests/class-use/GraphicsTest.html | 0 .../class-use/ImageBufferEndianTest.html | 0 .../tests/class-use/ImageBufferTest.html | 0 .../tests/class-use/ImageCornerTest.html | 0 .../tests/class-use/ImageGraphicsTest.html | 0 .../slick/tests/class-use/ImageMemTest.html | 0 .../slick/tests/class-use/ImageOutTest.html | 0 .../slick/tests/class-use/ImageReadTest.html | 0 .../slick/tests/class-use/ImageTest.html | 0 .../slick/tests/class-use/InkscapeTest.html | 0 .../tests/class-use/InputProviderTest.html | 0 .../slick/tests/class-use/InputTest.html | 0 .../slick/tests/class-use/IsoTiledTest.html | 0 .../slick/tests/class-use/KeyRepeatTest.html | 0 .../slick/tests/class-use/LameTest.html | 0 .../slick/tests/class-use/LineRenderTest.html | 0 .../slick/tests/class-use/MorphSVGTest.html | 0 .../slick/tests/class-use/MorphShapeTest.html | 0 .../tests/class-use/MusicListenerTest.html | 0 .../slick/tests/class-use/NavMeshTest.html | 0 .../tests/class-use/PackedSheetTest.html | 0 .../slick/tests/class-use/ParticleTest.html | 0 .../slick/tests/class-use/PedigreeTest.html | 0 .../slick/tests/class-use/PolygonTest.html | 0 .../slick/tests/class-use/PureFontTest.html | 0 .../slick/tests/class-use/SavedStateTest.html | 0 .../slick/tests/class-use/ScalableTest.html | 0 .../slick/tests/class-use/ShapeTest.html | 0 .../tests/class-use/SlickCallableTest.html | 0 .../tests/class-use/SoundPositionTest.html | 0 .../slick/tests/class-use/SoundTest.html | 0 .../slick/tests/class-use/SoundURLTest.html | 0 .../tests/class-use/SpriteSheetFontTest.html | 0 .../slick/tests/class-use/StateBasedTest.html | 0 .../slick/tests/class-use/TestBox.html | 0 .../slick/tests/class-use/TestUtils.html | 0 .../tests/class-use/TexturePaintTest.html | 0 .../slick/tests/class-use/TileMapTest.html | 0 .../slick/tests/class-use/TransformTest.html | 0 .../slick/tests/class-use/TransformTest2.html | 0 .../slick/tests/class-use/TransitionTest.html | 0 .../tests/class-use/TransparentColorTest.html | 0 .../TrueTypeFontPerformanceTest.html | 0 .../tests/class-use/UnicodeFontTest.html | 0 .../newdawn/slick/tests/package-frame.html | 0 .../newdawn/slick/tests/package-summary.html | 0 .../org/newdawn/slick/tests/package-tree.html | 0 .../org/newdawn/slick/tests/package-use.html | 0 .../slick/tests/states/TestState1.html | 0 .../slick/tests/states/TestState2.html | 0 .../slick/tests/states/TestState3.html | 0 .../tests/states/class-use/TestState1.html | 0 .../tests/states/class-use/TestState2.html | 0 .../tests/states/class-use/TestState3.html | 0 .../slick/tests/states/package-frame.html | 0 .../slick/tests/states/package-summary.html | 0 .../slick/tests/states/package-tree.html | 0 .../slick/tests/states/package-use.html | 0 .../org/newdawn/slick/tests/xml/Entity.html | 0 .../org/newdawn/slick/tests/xml/GameData.html | 0 .../newdawn/slick/tests/xml/Inventory.html | 0 .../org/newdawn/slick/tests/xml/Item.html | 0 .../slick/tests/xml/ItemContainer.html | 0 .../slick/tests/xml/ObjectParserTest.html | 0 .../org/newdawn/slick/tests/xml/Stats.html | 0 .../org/newdawn/slick/tests/xml/XMLTest.html | 0 .../slick/tests/xml/class-use/Entity.html | 0 .../slick/tests/xml/class-use/GameData.html | 0 .../slick/tests/xml/class-use/Inventory.html | 0 .../slick/tests/xml/class-use/Item.html | 0 .../tests/xml/class-use/ItemContainer.html | 0 .../tests/xml/class-use/ObjectParserTest.html | 0 .../slick/tests/xml/class-use/Stats.html | 0 .../slick/tests/xml/class-use/XMLTest.html | 0 .../slick/tests/xml/package-frame.html | 0 .../slick/tests/xml/package-summary.html | 0 .../newdawn/slick/tests/xml/package-tree.html | 0 .../newdawn/slick/tests/xml/package-use.html | 0 .../org/newdawn/slick/tiled/Layer.html | 0 .../org/newdawn/slick/tiled/TileSet.html | 0 .../slick/tiled/TiledMap.GroupObject.html | 0 .../slick/tiled/TiledMap.ObjectGroup.html | 0 .../org/newdawn/slick/tiled/TiledMap.html | 0 .../newdawn/slick/tiled/class-use/Layer.html | 0 .../slick/tiled/class-use/TileSet.html | 0 .../tiled/class-use/TiledMap.GroupObject.html | 0 .../tiled/class-use/TiledMap.ObjectGroup.html | 0 .../slick/tiled/class-use/TiledMap.html | 0 .../newdawn/slick/tiled/package-frame.html | 0 .../newdawn/slick/tiled/package-summary.html | 0 .../org/newdawn/slick/tiled/package-tree.html | 0 .../org/newdawn/slick/tiled/package-use.html | 0 .../org/newdawn/slick/util/Bootstrap.html | 0 .../newdawn/slick/util/BufferedImageUtil.html | 0 .../newdawn/slick/util/ClasspathLocation.html | 0 .../newdawn/slick/util/DefaultLogSystem.html | 0 .../org/newdawn/slick/util/FastTrig.html | 0 .../slick/util/FileSystemLocation.html | 0 .../slick/util/FontUtils.Alignment.html | 0 .../org/newdawn/slick/util/FontUtils.html | 0 .../org/newdawn/slick/util/InputAdapter.html | 0 .../org/newdawn/slick/util/LocatedImage.html | 0 .../org/newdawn/slick/util/Log.html | 0 .../org/newdawn/slick/util/LogSystem.html | 0 .../org/newdawn/slick/util/MaskUtil.html | 0 .../util/OperationNotSupportedException.html | 0 .../newdawn/slick/util/ResourceLoader.html | 0 .../newdawn/slick/util/ResourceLocation.html | 0 .../slick/util/class-use/Bootstrap.html | 0 .../util/class-use/BufferedImageUtil.html | 0 .../util/class-use/ClasspathLocation.html | 0 .../util/class-use/DefaultLogSystem.html | 0 .../slick/util/class-use/FastTrig.html | 0 .../util/class-use/FileSystemLocation.html | 0 .../util/class-use/FontUtils.Alignment.html | 0 .../slick/util/class-use/FontUtils.html | 0 .../slick/util/class-use/InputAdapter.html | 0 .../slick/util/class-use/LocatedImage.html | 0 .../org/newdawn/slick/util/class-use/Log.html | 0 .../slick/util/class-use/LogSystem.html | 0 .../slick/util/class-use/MaskUtil.html | 0 .../OperationNotSupportedException.html | 0 .../slick/util/class-use/ResourceLoader.html | 0 .../util/class-use/ResourceLocation.html | 0 .../org/newdawn/slick/util/package-frame.html | 0 .../newdawn/slick/util/package-summary.html | 0 .../org/newdawn/slick/util/package-tree.html | 0 .../org/newdawn/slick/util/package-use.html | 0 .../util/pathfinding/AStarHeuristic.html | 0 .../util/pathfinding/AStarPathFinder.html | 0 .../newdawn/slick/util/pathfinding/Mover.html | 0 .../slick/util/pathfinding/Path.Step.html | 0 .../newdawn/slick/util/pathfinding/Path.html | 0 .../slick/util/pathfinding/PathFinder.html | 0 .../util/pathfinding/PathFindingContext.html | 0 .../slick/util/pathfinding/TileBasedMap.html | 0 .../pathfinding/class-use/AStarHeuristic.html | 0 .../class-use/AStarPathFinder.html | 0 .../util/pathfinding/class-use/Mover.html | 0 .../util/pathfinding/class-use/Path.Step.html | 0 .../util/pathfinding/class-use/Path.html | 0 .../pathfinding/class-use/PathFinder.html | 0 .../class-use/PathFindingContext.html | 0 .../pathfinding/class-use/TileBasedMap.html | 0 .../heuristics/ClosestHeuristic.html | 0 .../heuristics/ClosestSquaredHeuristic.html | 0 .../heuristics/ManhattanHeuristic.html | 0 .../class-use/ClosestHeuristic.html | 0 .../class-use/ClosestSquaredHeuristic.html | 0 .../class-use/ManhattanHeuristic.html | 0 .../pathfinding/heuristics/package-frame.html | 0 .../heuristics/package-summary.html | 0 .../pathfinding/heuristics/package-tree.html | 0 .../pathfinding/heuristics/package-use.html | 0 .../slick/util/pathfinding/navmesh/Link.html | 0 .../util/pathfinding/navmesh/NavMesh.html | 0 .../pathfinding/navmesh/NavMeshBuilder.html | 0 .../util/pathfinding/navmesh/NavPath.html | 0 .../slick/util/pathfinding/navmesh/Space.html | 0 .../pathfinding/navmesh/class-use/Link.html | 0 .../navmesh/class-use/NavMesh.html | 0 .../navmesh/class-use/NavMeshBuilder.html | 0 .../navmesh/class-use/NavPath.html | 0 .../pathfinding/navmesh/class-use/Space.html | 0 .../pathfinding/navmesh/package-frame.html | 0 .../pathfinding/navmesh/package-summary.html | 0 .../pathfinding/navmesh/package-tree.html | 0 .../util/pathfinding/navmesh/package-use.html | 0 .../slick/util/pathfinding/package-frame.html | 0 .../util/pathfinding/package-summary.html | 0 .../slick/util/pathfinding/package-tree.html | 0 .../slick/util/pathfinding/package-use.html | 0 .../slick/util/xml/ObjectTreeParser.html | 0 .../slick/util/xml/SlickXMLException.html | 0 .../newdawn/slick/util/xml/XMLElement.html | 0 .../slick/util/xml/XMLElementList.html | 0 .../org/newdawn/slick/util/xml/XMLParser.html | 0 .../util/xml/class-use/ObjectTreeParser.html | 0 .../util/xml/class-use/SlickXMLException.html | 0 .../slick/util/xml/class-use/XMLElement.html | 0 .../util/xml/class-use/XMLElementList.html | 0 .../slick/util/xml/class-use/XMLParser.html | 0 .../newdawn/slick/util/xml/package-frame.html | 0 .../slick/util/xml/package-summary.html | 0 .../newdawn/slick/util/xml/package-tree.html | 0 .../newdawn/slick/util/xml/package-use.html | 0 .../{ => slick-javadoc}/overview-frame.html | 0 .../{ => slick-javadoc}/overview-summary.html | 0 .../{ => slick-javadoc}/overview-tree.html | 0 lib/javadoc/{ => slick-javadoc}/package-list | 0 .../{ => slick-javadoc}/serialized-form.html | 0 lib/javadoc/slick-javadoc/stylesheet.css | 29 + lib/luaj-jse-3.0.1.jar | Bin 0 -> 354104 bytes lib/luaj-sources-3.0.1.jar | Bin 0 -> 517483 bytes 959 files changed, 93652 insertions(+) delete mode 100644 lib/OpenComputers-JNLua.jar delete mode 100644 lib/OpenComputers-LuaJ.jar create mode 100644 lib/javadoc/luaj-javadoc/allclasses-frame.html create mode 100644 lib/javadoc/luaj-javadoc/allclasses-noframe.html create mode 100644 lib/javadoc/luaj-javadoc/constant-values.html create mode 100644 lib/javadoc/luaj-javadoc/deprecated-list.html create mode 100644 lib/javadoc/luaj-javadoc/help-doc.html create mode 100644 lib/javadoc/luaj-javadoc/index-all.html create mode 100644 lib/javadoc/luaj-javadoc/index.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Buffer.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Compiler.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Loader.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Undumper.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LoadState.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LocVars.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Lua.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaBoolean.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaClosure.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaDouble.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaError.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaInteger.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNil.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNumber.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaString.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaTable.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.State.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaUserdata.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaValue.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/OrphanedThread.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Print.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Prototype.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/TailcallVarargs.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/UpValue.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Upvaldesc.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/Varargs.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.WeakSlot.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Buffer.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Compiler.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Loader.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Undumper.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LoadState.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LocVars.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Lua.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaBoolean.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaClosure.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaDouble.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaError.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaInteger.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNil.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNumber.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaString.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaTable.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.State.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaUserdata.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaValue.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/OrphanedThread.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Print.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Prototype.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/TailcallVarargs.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/UpValue.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Upvaldesc.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Varargs.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.WeakSlot.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/LuaC.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/class-use/LuaC.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/BaseLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/Bit32Lib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/CoroutineLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.CallStack.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.File.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/LibFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.BinaryOp.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.UnaryOp.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OneArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OsLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.java_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.loadlib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.lua_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.preload_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.require.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.searchpath.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ResourceFinder.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/StringLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TableLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ThreeArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TwoArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/VarArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ZeroArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/BaseLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/Bit32Lib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/CoroutineLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.CallStack.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.File.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/LibFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.BinaryOp.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.UnaryOp.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OneArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OsLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.java_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.loadlib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.lua_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.preload_searcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.require.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.searchpath.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ResourceFinder.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/StringLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TableLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ThreeArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TwoArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/VarArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ZeroArgFunction.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmeIoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmePlatform.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmeIoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmePlatform.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceJavaToLua.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceLuaToJava.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseBaseLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseIoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseMathLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseOsLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JsePlatform.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseProcess.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/LuajavaLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceJavaToLua.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceLuaToJava.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseBaseLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseIoLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseMathLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseOsLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JsePlatform.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseProcess.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/LuajavaLib.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/LuaJC.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/class-use/LuaJC.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/DefaultLauncher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/Launcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/LuajClassLoader.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/DefaultLauncher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/Launcher.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/LuajClassLoader.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-frame.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-summary.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-tree.html create mode 100644 lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-use.html create mode 100644 lib/javadoc/luaj-javadoc/overview-frame.html create mode 100644 lib/javadoc/luaj-javadoc/overview-summary.html create mode 100644 lib/javadoc/luaj-javadoc/overview-tree.html create mode 100644 lib/javadoc/luaj-javadoc/package-list create mode 100644 lib/javadoc/luaj-javadoc/resources/inherit.gif create mode 100644 lib/javadoc/luaj-javadoc/serialized-form.html rename lib/javadoc/{ => luaj-javadoc}/stylesheet.css (100%) rename lib/javadoc/{ => slick-javadoc}/allclasses-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/allclasses-noframe.html (100%) rename lib/javadoc/{ => slick-javadoc}/constant-values.html (100%) rename lib/javadoc/{ => slick-javadoc}/deprecated-list.html (100%) rename lib/javadoc/{ => slick-javadoc}/help-doc.html (100%) rename lib/javadoc/{ => slick-javadoc}/index-all.html (100%) rename lib/javadoc/{ => slick-javadoc}/index.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AngelCodeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Animation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AppGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AppletGameContainer.ConsolePanel.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AppletGameContainer.Container.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AppletGameContainer.ContainerPanel.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/AppletGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/BasicGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/BigImage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/CachedRender.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/CanvasGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Color.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/ControlledInputReciever.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/ControllerListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Font.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Game.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/GameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Graphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Image.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/ImageBuffer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Input.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/InputListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/KeyListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/MouseListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Music.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/MusicListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/PackedSpriteSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Renderable.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/SavedState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/ScalableGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/ShapeFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/SlickException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/Sound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/SpriteSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/SpriteSheetFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/TrueTypeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/UnicodeFont.DisplayList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/UnicodeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/XMLPackedSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AngelCodeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Animation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AppGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AppletGameContainer.ConsolePanel.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AppletGameContainer.Container.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AppletGameContainer.ContainerPanel.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/AppletGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/BasicGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/BigImage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/CachedRender.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/CanvasGameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Color.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/ControlledInputReciever.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/ControllerListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Font.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Game.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/GameContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Graphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Image.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/ImageBuffer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Input.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/InputListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/KeyListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/MouseListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Music.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/MusicListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/PackedSpriteSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Renderable.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/SavedState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/ScalableGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/ShapeFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/SlickException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/Sound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/SpriteSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/SpriteSheetFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/TrueTypeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/UnicodeFont.DisplayList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/UnicodeFont.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/class-use/XMLPackedSheet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/BasicCommand.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/Command.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/Control.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/ControllerButtonControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/ControllerDirectionControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/InputProvider.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/InputProviderListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/KeyControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/MouseButtonControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/BasicCommand.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/Command.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/Control.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/ControllerButtonControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/ControllerDirectionControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/InputProvider.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/InputProviderListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/KeyControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/class-use/MouseButtonControl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/command/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/GradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/class-use/GradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/fills/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/Glyph.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/GlyphPage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/HieroSettings.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/class-use/Glyph.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/class-use/GlyphPage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/class-use/HieroSettings.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/ColorEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/ConfigurableEffect.Value.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/ConfigurableEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/Effect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/EffectUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/FilterEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/GradientEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/OutlineEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/OutlineWobbleEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/OutlineZigzagEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/ShadowEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/ColorEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.Value.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/Effect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/EffectUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/FilterEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/GradientEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/OutlineEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/OutlineWobbleEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/OutlineZigzagEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/class-use/ShadowEffect.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/effects/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/font/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/BasicTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Circle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Curve.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Ellipse.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/GeomUtil.HitResult.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/GeomUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/GeomUtilListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Line.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/MannTriangulator.PointBag.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/MannTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/MorphShape.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/NeatTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/OverTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Path.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Point.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Polygon.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Rectangle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/RoundedRectangle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Shape.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/ShapeRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/TexCoordGenerator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Transform.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Triangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/Vector2f.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/BasicTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Circle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Curve.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Ellipse.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/GeomUtil.HitResult.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/GeomUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/GeomUtilListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Line.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/MannTriangulator.PointBag.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/MannTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/MorphShape.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/NeatTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/OverTriangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Path.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Point.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Polygon.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Rectangle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/RoundedRectangle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Shape.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/ShapeRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/TexCoordGenerator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Transform.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Triangulator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/class-use/Vector2f.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/geom/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/AbstractComponent.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/BasicComponent.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/ComponentListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/GUIContext.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/MouseOverArea.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/TextField.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/AbstractComponent.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/BasicComponent.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/ComponentListener.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/GUIContext.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/MouseOverArea.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/class-use/TextField.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/gui/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/ImageIOWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/ImageOut.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/ImageWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/ImageWriterFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/TGAWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/class-use/ImageIOWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/class-use/ImageOut.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/class-use/ImageWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/class-use/ImageWriterFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/class-use/TGAWriter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/imageout/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/DeferredResource.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/LoadingList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/class-use/DeferredResource.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/class-use/LoadingList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/loading/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/FileMuffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/Muffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/WebstartMuffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/class-use/FileMuffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/class-use/Muffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/class-use/WebstartMuffin.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/muffin/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/AiffData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/Audio.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/AudioImpl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/AudioLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/DeferredSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/MODSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/NullAudio.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/OggData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/OggDecoder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/OggInputStream.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/OpenALStreamPlayer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/SoundStore.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/StreamSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/WaveData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/AiffData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/Audio.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/AudioImpl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/AudioLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/DeferredSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/MODSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/NullAudio.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/OggData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/OggDecoder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/OggInputStream.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/OpenALStreamPlayer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/SoundStore.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/StreamSound.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/class-use/WaveData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/openal/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/CompositeIOException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/CompositeImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/CursorLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/DeferredTexture.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/EmptyImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/GLUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/ImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/ImageDataFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/ImageIOImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/InternalTextureLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/LoadableImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/PNGDecoder.Format.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/PNGDecoder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/PNGImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/SlickCallable.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/TGAImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/Texture.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/TextureImpl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/TextureLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/CompositeIOException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/CompositeImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/CursorLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/DeferredTexture.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/EmptyImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/GLUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/ImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/ImageDataFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/ImageIOImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/InternalTextureLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/LoadableImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/PNGDecoder.Format.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/PNGDecoder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/PNGImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/SlickCallable.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/TGAImageData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/Texture.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/TextureImpl.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/class-use/TextureLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/FBOGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/GraphicsFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/PBufferGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/PBufferUniqueGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/class-use/FBOGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/class-use/GraphicsFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/class-use/PBufferGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/class-use/PBufferUniqueGraphics.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/pbuffer/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/DefaultLineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/ImmediateModeOGLRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/LineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/QuadBasedLineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/Renderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/SGL.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/VAOGLRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/DefaultLineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/ImmediateModeOGLRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/LineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/QuadBasedLineStripRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/Renderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/SGL.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/class-use/VAOGLRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/opengl/renderer/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.ColorRecord.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.LinearInterpolator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.RandomValue.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.Range.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.SimpleValue.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.Value.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ConfigurableEmitterFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/Particle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ParticleEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ParticleIO.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/ParticleSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.ColorRecord.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.LinearInterpolator.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.RandomValue.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Range.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.SimpleValue.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Value.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ConfigurableEmitterFactory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/Particle.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ParticleEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ParticleIO.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/class-use/ParticleSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/FireEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/class-use/FireEmitter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/effects/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/particles/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/BasicGameState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/GameState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/StateBasedGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/class-use/BasicGameState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/class-use/GameState.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/class-use/StateBasedGame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/BlobbyTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/CombinedTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/CrossStateTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/EmptyTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/FadeInTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/FadeOutTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/HorizontalSplitTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/RotateTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/SelectTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/Transition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/VerticalSplitTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/BlobbyTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/CombinedTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/CrossStateTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/EmptyTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/FadeInTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/FadeOutTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/HorizontalSplitTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/RotateTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/SelectTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/Transition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/class-use/VerticalSplitTransition.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/state/transition/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/Diagram.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/Figure.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/Gradient.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/InkscapeLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/LinearGradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/Loader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/NonGeometricData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/ParsingException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/RadialGradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/SVGMorph.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/SimpleDiagramRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/Diagram.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/Figure.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/Gradient.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/InkscapeLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/LinearGradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/Loader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/NonGeometricData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/ParsingException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/RadialGradientFill.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/SVGMorph.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/class-use/SimpleDiagramRenderer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/DefsProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/ElementProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/EllipseProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/GroupProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/InkscapeNonGeometricData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/LineProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/PathProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/PolygonProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/RectProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/UseProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/Util.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/DefsProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/ElementProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/EllipseProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/GroupProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/InkscapeNonGeometricData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/LineProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/PathProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/PolygonProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/RectProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/UseProcessor.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/class-use/Util.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/inkscape/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/svg/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/AlphaMapTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/AnimationTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/AntiAliasTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/BigImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/BigSpriteSheetTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/CachedRenderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/CanvasContainerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/CanvasSizeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ClipTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/CopyAreaAlphaTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/CurveTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/DeferredLoadingTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/DistanceFieldTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/DoubleClickTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/DuplicateEmitterTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/FlashTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/FontPerformanceTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/FontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GUITest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GeomAccuracyTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GeomTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GeomUtilTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GeomUtilTileTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GradientImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GradientTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/GraphicsTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageBufferEndianTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageBufferTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageCornerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageGraphicsTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageMemTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageOutTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageReadTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/InkscapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/InputProviderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/InputTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/IsoTiledTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/KeyRepeatTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/LameTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/LineRenderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/MorphSVGTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/MorphShapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/MusicListenerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/NavMeshTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/PackedSheetTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ParticleTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/PedigreeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/PolygonTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/PureFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SavedStateTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ScalableTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/ShapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SlickCallableTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SoundPositionTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SoundTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SoundURLTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/SpriteSheetFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/StateBasedTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TestBox.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TestUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TexturePaintTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TileMapTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TransformTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TransformTest2.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TransitionTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TransparentColorTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/TrueTypeFontPerformanceTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/UnicodeFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/AlphaMapTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/AnimationTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/AntiAliasTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/BigImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/BigSpriteSheetTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/CachedRenderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/CanvasContainerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/CanvasSizeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ClipTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/CopyAreaAlphaTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/CurveTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/DeferredLoadingTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/DistanceFieldTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/DoubleClickTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/DuplicateEmitterTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/FlashTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/FontPerformanceTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/FontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GUITest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GeomAccuracyTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GeomTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GeomUtilTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GeomUtilTileTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GradientImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GradientTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/GraphicsTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageBufferEndianTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageBufferTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageCornerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageGraphicsTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageMemTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageOutTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageReadTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ImageTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/InkscapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/InputProviderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/InputTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/IsoTiledTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/KeyRepeatTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/LameTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/LineRenderTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/MorphSVGTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/MorphShapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/MusicListenerTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/NavMeshTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/PackedSheetTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ParticleTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/PedigreeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/PolygonTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/PureFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SavedStateTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ScalableTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/ShapeTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SlickCallableTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SoundPositionTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SoundTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SoundURLTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/SpriteSheetFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/StateBasedTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TestBox.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TestUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TexturePaintTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TileMapTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TransformTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TransformTest2.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TransitionTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TransparentColorTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/TrueTypeFontPerformanceTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/class-use/UnicodeFontTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/TestState1.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/TestState2.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/TestState3.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/class-use/TestState1.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/class-use/TestState2.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/class-use/TestState3.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/states/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/Entity.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/GameData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/Inventory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/Item.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/ItemContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/ObjectParserTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/Stats.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/XMLTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/Entity.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/GameData.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/Inventory.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/Item.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/ItemContainer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/ObjectParserTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/Stats.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/class-use/XMLTest.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tests/xml/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/Layer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/TileSet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/TiledMap.GroupObject.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/TiledMap.ObjectGroup.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/TiledMap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/class-use/Layer.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/class-use/TileSet.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/class-use/TiledMap.GroupObject.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/class-use/TiledMap.ObjectGroup.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/class-use/TiledMap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/tiled/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/Bootstrap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/BufferedImageUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/ClasspathLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/DefaultLogSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/FastTrig.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/FileSystemLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/FontUtils.Alignment.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/FontUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/InputAdapter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/LocatedImage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/Log.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/LogSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/MaskUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/OperationNotSupportedException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/ResourceLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/ResourceLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/Bootstrap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/BufferedImageUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/ClasspathLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/DefaultLogSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/FastTrig.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/FileSystemLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/FontUtils.Alignment.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/FontUtils.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/InputAdapter.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/LocatedImage.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/Log.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/LogSystem.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/MaskUtil.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/OperationNotSupportedException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/ResourceLoader.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/class-use/ResourceLocation.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/AStarHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/AStarPathFinder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/Mover.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/Path.Step.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/Path.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/PathFinder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/PathFindingContext.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/TileBasedMap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/AStarHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/AStarPathFinder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/Mover.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/Path.Step.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/Path.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/PathFinder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/PathFindingContext.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/class-use/TileBasedMap.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/ClosestHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/ClosestSquaredHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/ManhattanHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestSquaredHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/class-use/ManhattanHeuristic.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/heuristics/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/Link.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/NavMesh.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/NavMeshBuilder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/NavPath.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/Space.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/class-use/Link.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMesh.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMeshBuilder.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavPath.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/class-use/Space.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/navmesh/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/pathfinding/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/ObjectTreeParser.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/SlickXMLException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/XMLElement.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/XMLElementList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/XMLParser.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/class-use/ObjectTreeParser.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/class-use/SlickXMLException.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/class-use/XMLElement.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/class-use/XMLElementList.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/class-use/XMLParser.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/package-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/package-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/package-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/org/newdawn/slick/util/xml/package-use.html (100%) rename lib/javadoc/{ => slick-javadoc}/overview-frame.html (100%) rename lib/javadoc/{ => slick-javadoc}/overview-summary.html (100%) rename lib/javadoc/{ => slick-javadoc}/overview-tree.html (100%) rename lib/javadoc/{ => slick-javadoc}/package-list (100%) rename lib/javadoc/{ => slick-javadoc}/serialized-form.html (100%) create mode 100644 lib/javadoc/slick-javadoc/stylesheet.css create mode 100644 lib/luaj-jse-3.0.1.jar create mode 100644 lib/luaj-sources-3.0.1.jar diff --git a/lib/OpenComputers-JNLua.jar b/lib/OpenComputers-JNLua.jar deleted file mode 100644 index f3abfe1f4e73dd2ec0fdb8a812ae0d50970bfbce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131662 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 !oHm^!PW=SK6{UuiPA>@Iv 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 diff --git a/lib/OpenComputers-LuaJ.jar b/lib/OpenComputers-LuaJ.jar deleted file mode 100644 index 70c315e47d6575120b912f4e6d5ec9a3ba79e050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456324 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�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 z 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Ð|SR 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

d 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�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 K7Q#v7zy2RNL*Hls diff --git a/lib/javadoc/luaj-javadoc/allclasses-frame.html b/lib/javadoc/luaj-javadoc/allclasses-frame.html new file mode 100644 index 000000000..a3f7d3278 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/allclasses-frame.html @@ -0,0 +1,165 @@ + + + + + + +All Classes (Luaj API) + + + + + + + + + + + +All Classes +
+ + + + + +
BaseLib +
+Bit32Lib +
+Buffer +
+CoerceJavaToLua +
+CoerceLuaToJava +
+CoroutineLib +
+DebugLib +
+DebugLib.CallStack +
+DefaultLauncher +
+Globals +
+Globals.Compiler +
+Globals.Loader +
+Globals.Undumper +
+IoLib +
+JmeIoLib +
+JmePlatform +
+JseBaseLib +
+JseIoLib +
+JseMathLib +
+JseOsLib +
+JsePlatform +
+JseProcess +
+Launcher +
+LibFunction +
+LoadState +
+LocVars +
+Lua +
+LuaBoolean +
+LuaC +
+LuaClosure +
+LuaDouble +
+LuaError +
+LuaFunction +
+LuaInteger +
+LuajavaLib +
+LuaJC +
+LuajClassLoader +
+LuaNil +
+LuaNumber +
+LuaString +
+LuaTable +
+LuaThread +
+LuaThread.State +
+LuaUserdata +
+LuaValue +
+MathLib +
+MathLib.BinaryOp +
+MathLib.UnaryOp +
+OneArgFunction +
+OrphanedThread +
+OsLib +
+PackageLib +
+PackageLib.loadlib +
+Print +
+Prototype +
+ResourceFinder +
+StringLib +
+TableLib +
+TailcallVarargs +
+ThreeArgFunction +
+TwoArgFunction +
+Upvaldesc +
+UpValue +
+VarArgFunction +
+Varargs +
+WeakTable +
+WeakTable.WeakSlot +
+ZeroArgFunction +
+
+ + + diff --git a/lib/javadoc/luaj-javadoc/allclasses-noframe.html b/lib/javadoc/luaj-javadoc/allclasses-noframe.html new file mode 100644 index 000000000..16205aa1f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/allclasses-noframe.html @@ -0,0 +1,165 @@ + + + + + + +All Classes (Luaj API) + + + + + + + + + + + +All Classes +
+ + + + + +
BaseLib +
+Bit32Lib +
+Buffer +
+CoerceJavaToLua +
+CoerceLuaToJava +
+CoroutineLib +
+DebugLib +
+DebugLib.CallStack +
+DefaultLauncher +
+Globals +
+Globals.Compiler +
+Globals.Loader +
+Globals.Undumper +
+IoLib +
+JmeIoLib +
+JmePlatform +
+JseBaseLib +
+JseIoLib +
+JseMathLib +
+JseOsLib +
+JsePlatform +
+JseProcess +
+Launcher +
+LibFunction +
+LoadState +
+LocVars +
+Lua +
+LuaBoolean +
+LuaC +
+LuaClosure +
+LuaDouble +
+LuaError +
+LuaFunction +
+LuaInteger +
+LuajavaLib +
+LuaJC +
+LuajClassLoader +
+LuaNil +
+LuaNumber +
+LuaString +
+LuaTable +
+LuaThread +
+LuaThread.State +
+LuaUserdata +
+LuaValue +
+MathLib +
+MathLib.BinaryOp +
+MathLib.UnaryOp +
+OneArgFunction +
+OrphanedThread +
+OsLib +
+PackageLib +
+PackageLib.loadlib +
+Print +
+Prototype +
+ResourceFinder +
+StringLib +
+TableLib +
+TailcallVarargs +
+ThreeArgFunction +
+TwoArgFunction +
+Upvaldesc +
+UpValue +
+VarArgFunction +
+Varargs +
+WeakTable +
+WeakTable.WeakSlot +
+ZeroArgFunction +
+
+ + + diff --git a/lib/javadoc/luaj-javadoc/constant-values.html b/lib/javadoc/luaj-javadoc/constant-values.html new file mode 100644 index 000000000..65193eed5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/constant-values.html @@ -0,0 +1,1026 @@ + + + + + + +Constant Field Values (Luaj API) + + + + + + + + + + + + +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + + + + + + +
+org.luaj.*
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.LoadState
+public static final intLUA_TBOOLEAN1
+public static final intLUA_TFUNCTION6
+public static final intLUA_TINT-2
+public static final intLUA_TLIGHTUSERDATA2
+public static final intLUA_TNIL0
+public static final intLUA_TNONE-1
+public static final intLUA_TNUMBER3
+public static final intLUA_TSTRING4
+public static final intLUA_TTABLE5
+public static final intLUA_TTHREAD8
+public static final intLUA_TUSERDATA7
+public static final intLUA_TVALUE9
+public static final intLUAC_FORMAT0
+public static final intLUAC_HEADERSIZE12
+public static final intLUAC_VERSION82
+public static final intNUMBER_FORMAT_FLOATS_OR_DOUBLES0
+public static final intNUMBER_FORMAT_INTS_ONLY1
+public static final intNUMBER_FORMAT_NUM_PATCH_INT324
+public static final java.lang.StringSOURCE_BINARY_STRING"binary string"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.Lua
+public static final java.lang.String_VERSION"Luaj 0.0"
+public static final intBITRK256
+public static final intiABC0
+public static final intiABx1
+public static final intiAsBx2
+public static final intiAx3
+public static final intLFIELDS_PER_FLUSH50
+public static final intLUA_MULTRET-1
+public static final intMASK_A16320
+public static final intMASK_B-8388608
+public static final intMASK_Bx-16384
+public static final intMASK_C8372224
+public static final intMASK_NOT_A-16321
+public static final intMASK_NOT_B8388607
+public static final intMASK_NOT_Bx16383
+public static final intMASK_NOT_C-8372225
+public static final intMASK_NOT_OP-64
+public static final intMASK_OP63
+public static final intMAX_OP63
+public static final intMAXARG_A255
+public static final intMAXARG_Ax67108863
+public static final intMAXARG_B511
+public static final intMAXARG_Bx262143
+public static final intMAXARG_C511
+public static final intMAXARG_sBx131071
+public static final intMAXINDEXRK255
+public static final intNO_REG255
+public static final intNUM_OPCODES40
+public static final intOP_ADD13
+public static final intOP_AND60
+public static final intOP_CALL29
+public static final intOP_CLOSURE37
+public static final intOP_CONCAT22
+public static final intOP_DIV16
+public static final intOP_EQ24
+public static final intOP_EXTRAARG39
+public static final intOP_FORLOOP32
+public static final intOP_FORPREP33
+public static final intOP_GE62
+public static final intOP_GETTABLE7
+public static final intOP_GETTABUP6
+public static final intOP_GETUPVAL5
+public static final intOP_GT63
+public static final intOP_JMP23
+public static final intOP_LE26
+public static final intOP_LEN21
+public static final intOP_LOADBOOL3
+public static final intOP_LOADK1
+public static final intOP_LOADKX2
+public static final intOP_LOADNIL4
+public static final intOP_LT25
+public static final intOP_MOD17
+public static final intOP_MOVE0
+public static final intOP_MUL15
+public static final intOP_NEQ61
+public static final intOP_NEWTABLE11
+public static final intOP_NOT20
+public static final intOP_OR59
+public static final intOP_POW18
+public static final intOP_RETURN31
+public static final intOP_SELF12
+public static final intOP_SETLIST36
+public static final intOP_SETTABLE10
+public static final intOP_SETTABUP8
+public static final intOP_SETUPVAL9
+public static final intOP_SUB14
+public static final intOP_TAILCALL30
+public static final intOP_TEST27
+public static final intOP_TESTSET28
+public static final intOP_TFORCALL34
+public static final intOP_TFORLOOP35
+public static final intOP_UNM19
+public static final intOP_VARARG38
+public static final intOpArgK3
+public static final intOpArgN0
+public static final intOpArgR2
+public static final intOpArgU1
+public static final intPOS_A6
+public static final intPOS_Ax6
+public static final intPOS_B23
+public static final intPOS_Bx14
+public static final intPOS_C14
+public static final intPOS_OP0
+public static final intSIZE_A8
+public static final intSIZE_Ax26
+public static final intSIZE_B9
+public static final intSIZE_Bx18
+public static final intSIZE_C9
+public static final intSIZE_OP6
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.LuaDouble
+public static final java.lang.StringJSTR_NAN"nan"
+public static final java.lang.StringJSTR_NEGINF"-inf"
+public static final java.lang.StringJSTR_POSINF"inf"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.LuaThread
+public static final intMAX_CALLSTACK256
+public static final intSTATUS_DEAD4
+public static final intSTATUS_INITIAL0
+public static final intSTATUS_NORMAL3
+public static final intSTATUS_RUNNING2
+public static final intSTATUS_SUSPENDED1
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.LuaValue
+public static final intTBOOLEAN1
+public static final intTFUNCTION6
+public static final intTINT-2
+public static final intTLIGHTUSERDATA2
+public static final intTNIL0
+public static final intTNONE-1
+public static final intTNUMBER3
+public static final intTSTRING4
+public static final intTTABLE5
+public static final intTTHREAD8
+public static final intTUSERDATA7
+public static final intTVALUE9
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.luaj.vm2.lib.IoLib
+protected static final intFTYPE_NAMED3
+protected static final intFTYPE_STDERR2
+protected static final intFTYPE_STDIN0
+protected static final intFTYPE_STDOUT1
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/deprecated-list.html b/lib/javadoc/luaj-javadoc/deprecated-list.html new file mode 100644 index 000000000..84b75d563 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/deprecated-list.html @@ -0,0 +1,162 @@ + + + + + + +Deprecated List (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Deprecated API

+
+
+Contents + + + + + + + + + +
+Deprecated Methods
org.luaj.vm2.compiler.LuaC.load(InputStream, String, Globals) +
+          Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly. 
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/help-doc.html b/lib/javadoc/luaj-javadoc/help-doc.html new file mode 100644 index 000000000..e227c722b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/help-doc.html @@ -0,0 +1,223 @@ + + + + + + +API Help (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    +
  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types
+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description +

    +

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary +

    +

  • Field Detail
  • Constructor Detail
  • Method Detail
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+ +

+Annotation Type

+
+ +

+Each annotation type has its own separate page with the following sections:

    +
  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail
+
+ +

+Enum

+
+ +

+Each enum has its own separate page with the following sections:

    +
  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail
+
+

+Use

+
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+

+Constant Field Values

+The Constant Field Values page lists the static final fields and their values. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/index-all.html b/lib/javadoc/luaj-javadoc/index-all.html new file mode 100644 index 000000000..1d735bf5c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/index-all.html @@ -0,0 +1,4623 @@ + + + + + + +Index (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +A B C D E F G H I J K L M N O P R S T U V W Y Z _
+

+A

+
+
add(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
add(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
add(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
add(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
add(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
add(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
add(double) - +Method in class org.luaj.vm2.LuaString +
  +
add(int) - +Method in class org.luaj.vm2.LuaString +
  +
ADD - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__add" for use as metatag +
add(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Add: Perform numeric add operation with another value + including metatag processing. +
add(double) - +Method in class org.luaj.vm2.LuaValue +
Add: Perform numeric add operation with another value + of double type with metatag processing +
add(int) - +Method in class org.luaj.vm2.LuaValue +
Add: Perform numeric add operation with another value + of int type with metatag processing +
add(LuaTable.Slot) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
and(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform boolean and with another operand, based on lua rules for boolean evaluation. +
append(byte) - +Method in class org.luaj.vm2.Buffer +
Append a single byte to the buffer. +
append(LuaValue) - +Method in class org.luaj.vm2.Buffer +
Append a LuaValue to the buffer. +
append(LuaString) - +Method in class org.luaj.vm2.Buffer +
Append a LuaString to the buffer. +
append(String) - +Method in class org.luaj.vm2.Buffer +
Append a Java String to the buffer. +
arg(int) - +Method in class org.luaj.vm2.LuaValue +
  +
arg(int) - +Method in class org.luaj.vm2.TailcallVarargs +
  +
arg(int) - +Method in class org.luaj.vm2.Varargs +
Get the n-th argument value (1-based). +
arg1() - +Method in class org.luaj.vm2.LuaValue +
  +
arg1() - +Method in class org.luaj.vm2.TailcallVarargs +
  +
arg1() - +Method in class org.luaj.vm2.Varargs +
Get the first argument in the list. +
argcheck(boolean, int, String) - +Method in class org.luaj.vm2.Varargs +
Performs test on argument i as a LuaValue when a user-supplied assertion passes, or throw an error. +
argerror(String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError indicating an invalid argument was supplied to a function +
argerror(int, String) - +Static method in class org.luaj.vm2.LuaValue +
Throw a LuaError indicating an invalid argument was supplied to a function +
aritherror() - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type +
aritherror(String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type +
arithmt(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform metatag processing for arithmetic operations. +
arithmtwith(LuaValue, double) - +Method in class org.luaj.vm2.LuaValue +
Perform metatag processing for arithmetic operations when the left-hand-side is a number. +
array - +Variable in class org.luaj.vm2.LuaTable +
the array values +
arrayget(LuaValue[], int) - +Method in class org.luaj.vm2.LuaTable +
  +
arrayget(LuaValue[], int) - +Method in class org.luaj.vm2.WeakTable +
  +
arraykey(int) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
assert_(boolean, String) - +Static method in class org.luaj.vm2.LuaValue +
Assert a condition is true, or throw a LuaError if not + Returns no value when b is true, throws LuaValue.error(String) with msg as argument + and does not return if b is false. +
+
+

+B

+
+
baselib - +Variable in class org.luaj.vm2.Globals +
The BaseLib instance loaded into this Globals +
BaseLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua basic library functions.
BaseLib() - +Constructor for class org.luaj.vm2.lib.BaseLib +
  +
bind(LuaValue, Class, String[]) - +Method in class org.luaj.vm2.lib.LibFunction +
Bind a set of library functions. +
bind(LuaValue, Class, String[], int) - +Method in class org.luaj.vm2.lib.LibFunction +
Bind a set of library functions, with an offset +
Bit32Lib - Class in org.luaj.vm2.lib
Subclass of LibFunction that implements the Lua standard bit32 library.
Bit32Lib() - +Constructor for class org.luaj.vm2.lib.Bit32Lib +
  +
BITRK - +Static variable in class org.luaj.vm2.Lua +
this bit 1 means constant (0 means register) +
booleanValue() - +Method in class org.luaj.vm2.LuaBoolean +
Return the boolean value for this boolean +
Buffer - Class in org.luaj.vm2
String buffer for use in string library methods, optimized for production + of StrValue instances.
Buffer() - +Constructor for class org.luaj.vm2.Buffer +
Create buffer with default capacity +
Buffer(int) - +Constructor for class org.luaj.vm2.Buffer +
Create buffer with specified initial capacity +
Buffer(LuaValue) - +Constructor for class org.luaj.vm2.Buffer +
Create buffer with specified initial value +
buffer() - +Method in class org.luaj.vm2.LuaValue +
Convert the value to a Buffer for more efficient concatenation of + multiple strings. +
bytecodes - +Variable in class org.luaj.vm2.LuaThread.State +
  +
+
+

+C

+
+
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.BaseLib +
Perform one-time initialization on the library by adding base functions + to the supplied environment, and returning it as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.Bit32Lib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.CoroutineLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.DebugLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.jse.JseBaseLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.jse.JseMathLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call() - +Method in class org.luaj.vm2.lib.LibFunction +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.LibFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.LibFunction +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.LibFunction +
  +
call(LuaValue, LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.LibFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.MathLib.BinaryOp +
  +
call(double, double) - +Method in class org.luaj.vm2.lib.MathLib.BinaryOp +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.MathLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue) - +Method in class org.luaj.vm2.lib.MathLib.UnaryOp +
  +
call(double) - +Method in class org.luaj.vm2.lib.MathLib.UnaryOp +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.OneArgFunction +
  +
call() - +Method in class org.luaj.vm2.lib.OneArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.OneArgFunction +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.OneArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.OsLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.PackageLib +
Perform one-time initialization on the library by adding package functions + to the supplied environment, and returning it as the return value. +
call(LuaValue) - +Method in class org.luaj.vm2.lib.PackageLib.require +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.StringLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.TableLib +
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.ThreeArgFunction +
  +
call() - +Method in class org.luaj.vm2.lib.ThreeArgFunction +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.ThreeArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.ThreeArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.TwoArgFunction +
  +
call() - +Method in class org.luaj.vm2.lib.TwoArgFunction +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.TwoArgFunction +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.TwoArgFunction +
  +
call() - +Method in class org.luaj.vm2.lib.VarArgFunction +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.VarArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.VarArgFunction +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.VarArgFunction +
  +
call() - +Method in class org.luaj.vm2.lib.ZeroArgFunction +
  +
call(LuaValue) - +Method in class org.luaj.vm2.lib.ZeroArgFunction +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.ZeroArgFunction +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.lib.ZeroArgFunction +
  +
call() - +Method in class org.luaj.vm2.LuaClosure +
  +
call(LuaValue) - +Method in class org.luaj.vm2.LuaClosure +
  +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaClosure +
  +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaClosure +
  +
CALL - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__call" for use as metatag +
call() - +Method in class org.luaj.vm2.LuaValue +
Call this with 0 arguments, including metatag processing, + and return only the first return value. +
call(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call this with 1 argument, including metatag processing, + and return only the first return value. +
call(String) - +Method in class org.luaj.vm2.LuaValue +
Convenience function which calls a luavalue with a single, string argument. +
call(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call this with 2 arguments, including metatag processing, + and return only the first return value. +
call(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call this with 3 arguments, including metatag processing, + and return only the first return value. +
callmt() - +Method in class org.luaj.vm2.LuaValue +
Get the metatag value for the LuaValue.CALL metatag, if it exists. +
CALLS - +Static variable in class org.luaj.vm2.lib.DebugLib +
  +
callstack - +Variable in class org.luaj.vm2.LuaThread +
Thread-local used by DebugLib to store debugging state. +
cause - +Variable in exception org.luaj.vm2.LuaError +
  +
charAt(int) - +Method in class org.luaj.vm2.LuaString +
  +
checkboolean() - +Method in class org.luaj.vm2.LuaBoolean +
  +
checkboolean() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is a LuaBoolean, + or throw LuaError if not +
checkboolean(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a boolean value, or throw an error if any other type. +
checkclosure() - +Method in class org.luaj.vm2.LuaClosure +
  +
checkclosure() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is a LuaClosure , + or throw LuaError if not +
checkclosure(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a closure, or throw an error if any other type. +
checkdouble() - +Method in class org.luaj.vm2.LuaDouble +
  +
checkdouble() - +Method in class org.luaj.vm2.LuaInteger +
  +
checkdouble() - +Method in class org.luaj.vm2.LuaString +
  +
checkdouble() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric +
checkdouble(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a double, or throw an error if it cannot be converted to one. +
checkfunction() - +Method in class org.luaj.vm2.LuaFunction +
  +
checkfunction() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is a function , or throw LuaError if not +
checkfunction(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a function, or throw an error if an incompatible type. +
checkglobals() - +Method in class org.luaj.vm2.Globals +
Check that this object is a Globals object, and return it, otherwise throw an error. +
checkglobals() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is a Globals instance, or throw LuaError if not +
checkint() - +Method in class org.luaj.vm2.LuaDouble +
  +
checkint() - +Method in class org.luaj.vm2.LuaInteger +
  +
checkint() - +Method in class org.luaj.vm2.LuaString +
  +
checkint() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +
checkint(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java int value, discarding any fractional part, or throw an error if not a number. +
checkinteger() - +Method in class org.luaj.vm2.LuaDouble +
  +
checkinteger() - +Method in class org.luaj.vm2.LuaInteger +
  +
checkinteger() - +Method in class org.luaj.vm2.LuaString +
  +
checkinteger() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +
checkinteger(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java int value, or throw an error if not a number or is not representable by a java int. +
checkjstring() - +Method in class org.luaj.vm2.LuaDouble +
  +
checkjstring() - +Method in class org.luaj.vm2.LuaInteger +
  +
checkjstring() - +Method in class org.luaj.vm2.LuaString +
  +
checkjstring() - +Method in class org.luaj.vm2.LuaValue +
Convert this value to a Java String. +
checkjstring(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java String if a string or number, or throw an error if any other type +
checklong() - +Method in class org.luaj.vm2.LuaDouble +
  +
checklong() - +Method in class org.luaj.vm2.LuaInteger +
  +
checklong() - +Method in class org.luaj.vm2.LuaString +
  +
checklong() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric +
checklong(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java long value, discarding any fractional part, or throw an error if not a number. +
checkmetatag(LuaValue, String) - +Method in class org.luaj.vm2.LuaValue +
Get particular metatag, or throw LuaError if it doesn't exist +
checknotnil() - +Method in class org.luaj.vm2.LuaNil +
  +
checknotnil() - +Method in class org.luaj.vm2.LuaValue +
Check that this is not the value LuaValue.NIL, or throw LuaError if it is +
checknotnil(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaValue if it is not nil, or throw an error if it is nil. +
checknumber() - +Method in class org.luaj.vm2.LuaDouble +
  +
checknumber() - +Method in class org.luaj.vm2.LuaNumber +
  +
checknumber(String) - +Method in class org.luaj.vm2.LuaNumber +
  +
checknumber() - +Method in class org.luaj.vm2.LuaString +
  +
checknumber(String) - +Method in class org.luaj.vm2.LuaString +
  +
checknumber() - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +
checknumber(String) - +Method in class org.luaj.vm2.LuaValue +
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +
checknumber(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaNumber, or throw an error if not a number or string that can be converted to a number. +
checkstring() - +Method in class org.luaj.vm2.LuaDouble +
  +
checkstring() - +Method in class org.luaj.vm2.LuaInteger +
  +
checkstring() - +Method in class org.luaj.vm2.LuaString +
  +
checkstring() - +Method in class org.luaj.vm2.LuaValue +
Check that this is a lua string, or throw LuaError if it is not. +
checkstring(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaString if a string or number, or throw an error if any other type +
checktable() - +Method in class org.luaj.vm2.LuaTable +
  +
checktable() - +Method in class org.luaj.vm2.LuaValue +
Check that this is a LuaTable, or throw LuaError if it is not +
checktable(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaTable if a lua table, or throw an error if any other type. +
checkthread() - +Method in class org.luaj.vm2.LuaThread +
  +
checkthread() - +Method in class org.luaj.vm2.LuaValue +
Check that this is a LuaThread, or throw LuaError if it is not +
checkthread(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaThread if a lua thread, or throw an error if any other type. +
checkuserdata() - +Method in class org.luaj.vm2.LuaUserdata +
  +
checkuserdata(Class) - +Method in class org.luaj.vm2.LuaUserdata +
  +
checkuserdata() - +Method in class org.luaj.vm2.LuaValue +
Check that this is a LuaUserdata, or throw LuaError if it is not +
checkuserdata(Class) - +Method in class org.luaj.vm2.LuaValue +
Check that this is a LuaUserdata, or throw LuaError if it is not +
checkuserdata(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if a userdata, or throw an error if any other type. +
checkuserdata(int, Class) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + or throw an error if any other type. +
checkvalue(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaValue if it exists, or throw an error. +
chunkid(String) - +Static method in class org.luaj.vm2.Lua +
  +
classForName(String) - +Method in class org.luaj.vm2.lib.jse.LuajavaLib +
  +
classnamestub() - +Method in class org.luaj.vm2.LuaFunction +
Return the last part of the class name, to be used as a function name in tojstring and elsewhere. +
clock() - +Method in class org.luaj.vm2.lib.OsLib +
  +
close() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
close() - +Method in class org.luaj.vm2.UpValue +
Close this upvalue so it is no longer on the stack +
code - +Variable in class org.luaj.vm2.Prototype +
  +
coerce(Object) - +Static method in class org.luaj.vm2.lib.jse.CoerceJavaToLua +
Coerse a Java object to a corresponding lua value. +
coerce(LuaValue, Class) - +Static method in class org.luaj.vm2.lib.jse.CoerceLuaToJava +
Coerce a LuaValue value to a specified java class +
CoerceJavaToLua - Class in org.luaj.vm2.lib.jse
Helper class to coerce values from Java to lua within the luajava library.
CoerceJavaToLua() - +Constructor for class org.luaj.vm2.lib.jse.CoerceJavaToLua +
  +
CoerceLuaToJava - Class in org.luaj.vm2.lib.jse
Helper class to coerce values from lua to Java within the luajava library.
CoerceLuaToJava() - +Constructor for class org.luaj.vm2.lib.jse.CoerceLuaToJava +
  +
compareerror(String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type +
compareerror(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type +
comparemt(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform metatag processing for comparison operations. +
compile(InputStream, String) - +Method in class org.luaj.vm2.compiler.LuaC +
Compile lua source into a Prototype. +
compile(InputStream, String) - +Method in interface org.luaj.vm2.Globals.Compiler +
Compile lua source into a Prototype. +
compileAll(InputStream, String, String, Globals, boolean) - +Method in class org.luaj.vm2.luajc.LuaJC +
  +
compileAll(Reader, String, String, Globals, boolean) - +Method in class org.luaj.vm2.luajc.LuaJC +
  +
compilePrototype(Reader, String) - +Method in class org.luaj.vm2.Globals +
Compile lua source from a Reader into a Prototype. +
compilePrototype(InputStream, String) - +Method in class org.luaj.vm2.Globals +
Compile lua source from an InputStream into a Prototype. +
compiler - +Variable in class org.luaj.vm2.Globals +
The installed compiler. +
concat(LuaValue) - +Method in class org.luaj.vm2.LuaNumber +
  +
concat(Buffer) - +Method in class org.luaj.vm2.LuaNumber +
  +
concat(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
concat(Buffer) - +Method in class org.luaj.vm2.LuaString +
  +
concat(LuaString, int, int) - +Method in class org.luaj.vm2.LuaTable +
Concatenate the contents of a table efficiently, using Buffer +
CONCAT - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__concat" for use as metatag +
concat(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing. +
concat(Buffer) - +Method in class org.luaj.vm2.LuaValue +
Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing. +
concatmt(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform metatag processing for concatenation operations. +
concatTo(LuaValue) - +Method in class org.luaj.vm2.Buffer +
Concatenate this buffer onto a LuaValue +
concatTo(LuaString) - +Method in class org.luaj.vm2.Buffer +
Concatenate this buffer onto a LuaString +
concatTo(LuaNumber) - +Method in class org.luaj.vm2.Buffer +
Concatenate this buffer onto a LuaNumber +
concatTo(LuaNumber) - +Method in class org.luaj.vm2.LuaNumber +
  +
concatTo(LuaString) - +Method in class org.luaj.vm2.LuaNumber +
  +
concatTo(LuaNumber) - +Method in class org.luaj.vm2.LuaString +
  +
concatTo(LuaString) - +Method in class org.luaj.vm2.LuaString +
  +
concatTo(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Reverse-concatenation: concatenate this value onto another value + whose type is unknwon + and return the result using rules of lua string concatenation including + metatag processing. +
concatTo(LuaNumber) - +Method in class org.luaj.vm2.LuaValue +
Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing. +
concatTo(LuaString) - +Method in class org.luaj.vm2.LuaValue +
Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing. +
copy(LuaTable.Slot) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
copyInto(int, byte[], int, int) - +Method in class org.luaj.vm2.LuaString +
Copy the bytes of the string into the given byte array. +
coroutine_count - +Static variable in class org.luaj.vm2.LuaThread +
The current number of coroutines. +
CoroutineLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard coroutine + library.
CoroutineLib() - +Constructor for class org.luaj.vm2.lib.CoroutineLib +
  +
+
+

+D

+
+
date(String, double) - +Method in class org.luaj.vm2.lib.OsLib +
If the time argument is present, this is the time to be formatted + (see the os.time function for a description of this value). +
ddiv(double, double) - +Static method in class org.luaj.vm2.LuaDouble +
Divide two double numbers according to lua math, and return a LuaValue result. +
ddiv_d(double, double) - +Static method in class org.luaj.vm2.LuaDouble +
Divide two double numbers according to lua math, and return a double result. +
debugGlobals() - +Static method in class org.luaj.vm2.lib.jme.JmePlatform +
Create standard globals including the DebugLib library. +
debugGlobals() - +Static method in class org.luaj.vm2.lib.jse.JsePlatform +
Create standard globals including the DebugLib library. +
debuglib - +Variable in class org.luaj.vm2.Globals +
The DebugLib instance loaded into this Globals, or null if debugging is not enabled +
DebugLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard debug + library.
DebugLib() - +Constructor for class org.luaj.vm2.lib.DebugLib +
  +
DebugLib.CallStack - Class in org.luaj.vm2.lib
 
decodeAsUtf8(byte[], int, int) - +Static method in class org.luaj.vm2.LuaString +
Convert to Java String interpreting as utf8 characters. +
DEFAULT_LUA_PATH - +Static variable in class org.luaj.vm2.lib.PackageLib +
The default value to use for package.path. +
defaultEntry(LuaValue, LuaValue) - +Static method in class org.luaj.vm2.LuaTable +
  +
DefaultLauncher - Class in org.luaj.vm2.server
Default Launcher instance that creates standard globals + and runs the supplied scripts with chunk name 'main'.
DefaultLauncher() - +Constructor for class org.luaj.vm2.server.DefaultLauncher +
  +
difftime(double, double) - +Method in class org.luaj.vm2.lib.OsLib +
Returns the number of seconds from time t1 to time t2. +
div(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
div(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
div(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
div(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
div(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
div(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
div(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
div(double) - +Method in class org.luaj.vm2.LuaString +
  +
div(int) - +Method in class org.luaj.vm2.LuaString +
  +
DIV - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__div" for use as metatag +
div(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing. +
div(double) - +Method in class org.luaj.vm2.LuaValue +
Divide: Perform numeric divide operation by another value + of double type without metatag processing +
div(int) - +Method in class org.luaj.vm2.LuaValue +
Divide: Perform numeric divide operation by another value + of int type without metatag processing +
divInto(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
divInto(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
divInto(double) - +Method in class org.luaj.vm2.LuaString +
  +
divInto(double) - +Method in class org.luaj.vm2.LuaValue +
Reverse-divide: Perform numeric divide operation into another value + with metatag processing +
dmod(double, double) - +Static method in class org.luaj.vm2.LuaDouble +
Take modulo double numbers according to lua math, and return a LuaValue result. +
dmod_d(double, double) - +Static method in class org.luaj.vm2.LuaDouble +
Take modulo for double numbers according to lua math, and return a double result. +
dpow(double, double) - +Static method in class org.luaj.vm2.lib.MathLib +
compute power using installed math library, or default if there is no math library installed +
dpow_d(double, double) - +Static method in class org.luaj.vm2.lib.MathLib +
  +
dpow_default(double, double) - +Static method in class org.luaj.vm2.lib.MathLib +
Default JME version computes using longhand heuristics. +
dpow_lib(double, double) - +Method in class org.luaj.vm2.lib.jse.JseMathLib +
Faster, better version of pow() used by arithmetic operator ^ +
dpow_lib(double, double) - +Method in class org.luaj.vm2.lib.MathLib +
Hook to override default dpow behavior with faster implementation. +
+
+

+E

+
+
EMPTYSTRING - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "" +
encodeToUtf8(char[], int, byte[], int) - +Static method in class org.luaj.vm2.LuaString +
Encode the given Java string as UTF-8 bytes, writing the result to bytes + starting at offset. +
encoding - +Static variable in class org.luaj.vm2.LoadState +
The character encoding to use for file encoding. +
endpc - +Variable in class org.luaj.vm2.LocVars +
The instruction offset when the variable goes out of scope +
entry(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
entry(LuaValue, LuaValue) - +Method in class org.luaj.vm2.WeakTable +
  +
ENV - +Static variable in class org.luaj.vm2.LuaValue +
The variable name of the environment. +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
EQ - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__eq" for use as metatag +
eq(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
eq_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +
eqmt(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue) - +Static method in class org.luaj.vm2.LuaValue +
Perform equality testing metatag processing +
equals(Object) - +Method in class org.luaj.vm2.LuaDouble +
  +
equals(Object) - +Method in class org.luaj.vm2.LuaInteger +
  +
equals(Object) - +Method in class org.luaj.vm2.LuaNil +
  +
equals(Object) - +Method in class org.luaj.vm2.LuaString +
  +
equals(LuaString, int, LuaString, int, int) - +Static method in class org.luaj.vm2.LuaString +
  +
equals(byte[], int, byte[], int, int) - +Static method in class org.luaj.vm2.LuaString +
  +
equals(Object) - +Method in class org.luaj.vm2.LuaUserdata +
  +
equals(Object) - +Method in class org.luaj.vm2.LuaValue +
  +
error(String) - +Static method in class org.luaj.vm2.LuaValue +
Throw a LuaError with a particular message +
errorfunc - +Variable in class org.luaj.vm2.LuaThread +
Error message handler for this thread, if any. +
eval() - +Method in class org.luaj.vm2.TailcallVarargs +
  +
eval() - +Method in class org.luaj.vm2.Varargs +
Evaluate any pending tail call and return result. +
EXEC_ERROR - +Static variable in class org.luaj.vm2.lib.jse.JseOsLib +
return code indicating the execute() threw an unknown exception +
EXEC_INTERRUPTED - +Static variable in class org.luaj.vm2.lib.jse.JseOsLib +
return code indicating the execute() was interrupted +
EXEC_IOEXCEPTION - +Static variable in class org.luaj.vm2.lib.jse.JseOsLib +
return code indicating the execute() threw an I/O exception +
execute(String) - +Method in class org.luaj.vm2.lib.jse.JseOsLib +
  +
execute(String) - +Method in class org.luaj.vm2.lib.OsLib +
This function is equivalent to the C function system. +
execute(LuaValue[], Varargs) - +Method in class org.luaj.vm2.LuaClosure +
  +
exit(int) - +Method in class org.luaj.vm2.lib.OsLib +
Calls the C function exit, with an optional code, to terminate the host program. +
exitValue() - +Method in class org.luaj.vm2.lib.jse.JseProcess +
Get the exit value of the process. +
+
+

+F

+
+
FALSE - +Static variable in class org.luaj.vm2.LuaValue +
LuaBoolean constant corresponding to lua false +
FILE_NAMES - +Static variable in class org.luaj.vm2.lib.IoLib +
  +
fileline - +Variable in exception org.luaj.vm2.LuaError +
  +
find(LuaValue) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
finder - +Variable in class org.luaj.vm2.Globals +
The installed ResourceFinder for looking files by name. +
findResource(String) - +Method in class org.luaj.vm2.lib.BaseLib +
ResourceFinder implementation + + Tries to open the file as a resource, which can work for JSE and JME. +
findResource(String) - +Method in class org.luaj.vm2.lib.jse.JseBaseLib +
Try to open a file in the current working directory, + or fall back to base opener if not found. +
findResource(String) - +Method in interface org.luaj.vm2.lib.ResourceFinder +
Try to open a file, or return null if not found. +
first() - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
flush() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
freadall(IoLib.File) - +Static method in class org.luaj.vm2.lib.IoLib +
  +
freadbytes(IoLib.File, int) - +Static method in class org.luaj.vm2.lib.IoLib +
  +
freadline(IoLib.File) - +Static method in class org.luaj.vm2.lib.IoLib +
  +
freadnumber(IoLib.File) - +Static method in class org.luaj.vm2.lib.IoLib +
  +
freaduntil(IoLib.File, boolean) - +Static method in class org.luaj.vm2.lib.IoLib +
  +
FTYPE_NAMED - +Static variable in class org.luaj.vm2.lib.IoLib +
Enumerated value representing a file type for a named file +
FTYPE_STDERR - +Static variable in class org.luaj.vm2.lib.IoLib +
Enumerated value representing stderr +
FTYPE_STDIN - +Static variable in class org.luaj.vm2.lib.IoLib +
Enumerated value representing stdin +
FTYPE_STDOUT - +Static variable in class org.luaj.vm2.lib.IoLib +
Enumerated value representing stdout +
function - +Variable in class org.luaj.vm2.LuaThread.State +
  +
+
+

+G

+
+
g - +Variable in class org.luaj.vm2.server.DefaultLauncher +
  +
get(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
get(int) - +Method in class org.luaj.vm2.LuaTable +
  +
get(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
get(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
get(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table including metatag processing using LuaValue.INDEX. +
get(int) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table including metatag processing using LuaValue.INDEX. +
get(String) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table including metatag processing using LuaValue.INDEX. +
GET_OPCODE(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_A(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_Ax(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_B(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_Bx(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_C(int) - +Static method in class org.luaj.vm2.Lua +
  +
GETARG_sBx(int) - +Static method in class org.luaj.vm2.Lua +
  +
getArrayLength() - +Method in class org.luaj.vm2.LuaTable +
Get the length of the array part of the table. +
getBMode(int) - +Static method in class org.luaj.vm2.Lua +
  +
getCause() - +Method in exception org.luaj.vm2.LuaError +
Get the cause, if any. +
getCMode(int) - +Static method in class org.luaj.vm2.Lua +
  +
getenv(String) - +Method in class org.luaj.vm2.lib.jse.JseOsLib +
  +
getenv(String) - +Method in class org.luaj.vm2.lib.OsLib +
Returns the value of the process environment variable varname, + or the System property value for varname, + or null if the variable is not defined in either environment. +
getHashLength() - +Method in class org.luaj.vm2.LuaTable +
Get the length of the hash part of the table. +
getlocalname(int, int) - +Method in class org.luaj.vm2.Prototype +
Get the name of a local variable. +
getMessage() - +Method in exception org.luaj.vm2.LuaError +
Get the string message if it was supplied, or a string + representation of the message object if that was supplied. +
getMessageObject() - +Method in exception org.luaj.vm2.LuaError +
Get the LuaValue that was provided in the constructor, or + a LuaString containing the message if it was a string error argument. +
getmetatable() - +Method in class org.luaj.vm2.LuaBoolean +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaClosure +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaFunction +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaNil +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaNumber +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaString +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaTable +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaThread +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaUserdata +
  +
getmetatable() - +Method in class org.luaj.vm2.LuaValue +
Get the metatable for this LuaValue +
getobjname(Prototype, int, int) - +Static method in class org.luaj.vm2.lib.DebugLib +
  +
getOpMode(int) - +Static method in class org.luaj.vm2.Lua +
  +
getSourceName(String) - +Static method in class org.luaj.vm2.LoadState +
Construct a source name from a supplied chunk name +
getStatus() - +Method in class org.luaj.vm2.LuaThread +
  +
gettable(LuaValue, LuaValue) - +Static method in class org.luaj.vm2.LuaValue +
get value from metatable operations, or NIL if not defined by metatables +
getUpvalue(int) - +Method in class org.luaj.vm2.LuaClosure +
  +
getValue() - +Method in class org.luaj.vm2.UpValue +
Get the value of the upvalue +
Globals - Class in org.luaj.vm2
Global environment used by luaj.
Globals() - +Constructor for class org.luaj.vm2.Globals +
  +
globals - +Variable in class org.luaj.vm2.lib.IoLib +
  +
globals - +Variable in class org.luaj.vm2.lib.OsLib +
  +
globals - +Variable in class org.luaj.vm2.LuaThread +
  +
Globals.Compiler - Interface in org.luaj.vm2
Interface for module that converts lua source text into a prototype.
Globals.Loader - Interface in org.luaj.vm2
Interface for module that converts a Prototype into a LuaFunction with an environment.
Globals.Undumper - Interface in org.luaj.vm2
Interface for module that loads lua binary chunk into a prototype.
gt(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
gt(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +
gt(double) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +
gt(int) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +
gt_b(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt_b(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt_b(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
gt_b(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt_b(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt_b(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
gt_b(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
gt_b(int) - +Method in class org.luaj.vm2.LuaString +
  +
gt_b(double) - +Method in class org.luaj.vm2.LuaString +
  +
gt_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
gt_b(int) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +
gt_b(double) - +Method in class org.luaj.vm2.LuaValue +
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
gteq(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
gteq(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +
gteq(double) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +
gteq(int) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +
gteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq_b(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq_b(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
gteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq_b(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq_b(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
gteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
gteq_b(int) - +Method in class org.luaj.vm2.LuaString +
  +
gteq_b(double) - +Method in class org.luaj.vm2.LuaString +
  +
gteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
gteq_b(int) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +
gteq_b(double) - +Method in class org.luaj.vm2.LuaValue +
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +
+
+

+H

+
+
hash - +Variable in class org.luaj.vm2.LuaTable +
the hash part +
hashCode() - +Method in class org.luaj.vm2.LuaDouble +
  +
hashCode() - +Method in class org.luaj.vm2.LuaInteger +
  +
hashCode(int) - +Static method in class org.luaj.vm2.LuaInteger +
  +
hashCode() - +Method in class org.luaj.vm2.LuaString +
  +
hashCode(byte[], int, int) - +Static method in class org.luaj.vm2.LuaString +
Compute the hash code of a sequence of bytes within a byte array using + lua's rules for string hashes. +
hashCode() - +Method in class org.luaj.vm2.LuaUserdata +
  +
hashEntries - +Variable in class org.luaj.vm2.LuaTable +
the number of hash entries +
hashget(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
hashmod(int, int) - +Static method in class org.luaj.vm2.LuaTable +
  +
hashpow2(int, int) - +Static method in class org.luaj.vm2.LuaTable +
  +
hashset(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
Set a hashtable value +
hashSlot(LuaValue, int) - +Static method in class org.luaj.vm2.LuaTable +
Find the hashtable slot index to use. +
hookcall - +Variable in class org.luaj.vm2.LuaThread.State +
  +
hookcount - +Variable in class org.luaj.vm2.LuaThread.State +
  +
hookfunc - +Variable in class org.luaj.vm2.LuaThread.State +
Hook function control state used by debug lib. +
hookline - +Variable in class org.luaj.vm2.LuaThread.State +
  +
hookrtrn - +Variable in class org.luaj.vm2.LuaThread.State +
  +
+
+

+I

+
+
iABC - +Static variable in class org.luaj.vm2.Lua +
  +
iABx - +Static variable in class org.luaj.vm2.Lua +
  +
iAsBx - +Static variable in class org.luaj.vm2.Lua +
  +
iAx - +Static variable in class org.luaj.vm2.Lua +
  +
idx - +Variable in class org.luaj.vm2.Upvaldesc +
  +
illegal(String, String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError indicating an illegal operation occurred, + typically involved in managing weak references +
INDEX - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__index" for use as metatag +
INDEXK(int) - +Static method in class org.luaj.vm2.Lua +
gets the index of the constant +
indexOf(byte, int) - +Method in class org.luaj.vm2.LuaString +
Find the index of a byte starting at a point in this string +
indexOf(LuaString, int) - +Method in class org.luaj.vm2.LuaString +
Find the index of a string starting at a point in this string +
indexOfAny(LuaString) - +Method in class org.luaj.vm2.LuaString +
Java version of strpbrk - find index of any byte that in an accept string. +
inext(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
Get the next element after a particular key in the + contiguous array part of a table +
inext(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Find the next integer-key,value pair if this is a table, + return LuaValue.NIL if there are no more, or throw a LuaError if not a table. +
inhook - +Variable in class org.luaj.vm2.LuaThread.State +
  +
initupvalue1(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Hook for implementations such as LuaJC to load the environment of the main chunk + into the first upvalue location. +
insert(int, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
Insert an element at a position in a list-table +
instack - +Variable in class org.luaj.vm2.Upvaldesc +
  +
install(Globals) - +Static method in class org.luaj.vm2.compiler.LuaC +
Install the compiler so that LoadState will first + try to use it when handed bytes that are + not already a compiled lua chunk. +
install(Globals) - +Static method in class org.luaj.vm2.LoadState +
Install this class as the standard Globals.Undumper for the supplied Globals +
install(Globals) - +Static method in class org.luaj.vm2.luajc.LuaJC +
Install the compiler as the main Globals.Loader to use in a set of globals. +
instance - +Static variable in class org.luaj.vm2.compiler.LuaC +
A sharable instance of the LuaC compiler. +
instance - +Static variable in class org.luaj.vm2.LoadState +
Shared instance of Globals.Undumper to use loading prototypes from binary lua files +
instance - +Static variable in class org.luaj.vm2.luajc.LuaJC +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.jse.LuajavaLib +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.LibFunction +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.OneArgFunction +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.PackageLib.java_searcher +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.PackageLib.lua_searcher +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.PackageLib.preload_searcher +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.PackageLib.searchpath +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.ThreeArgFunction +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.TwoArgFunction +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.VarArgFunction +
Subclass responsibility. +
invoke(Varargs) - +Method in class org.luaj.vm2.lib.ZeroArgFunction +
  +
invoke(Varargs) - +Method in class org.luaj.vm2.LuaClosure +
  +
invoke() - +Method in class org.luaj.vm2.LuaValue +
Call this with 0 arguments, including metatag processing, + and retain all return values in a Varargs. +
invoke(Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invoke(LuaValue, Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invoke(LuaValue, LuaValue, Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invoke(LuaValue[]) - +Method in class org.luaj.vm2.LuaValue +
Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invoke(LuaValue[], Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(String) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(String, Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(LuaValue, Varargs) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(String, LuaValue[]) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs. +
invokemethod(LuaValue, LuaValue[]) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +
IO_NAMES - +Static variable in class org.luaj.vm2.lib.IoLib +
  +
IoLib - Class in org.luaj.vm2.lib
Abstract base class extending LibFunction which implements the + core of the lua standard io library.
IoLib() - +Constructor for class org.luaj.vm2.lib.IoLib +
  +
IoLib.File - Class in org.luaj.vm2.lib
 
IoLib.File() - +Constructor for class org.luaj.vm2.lib.IoLib.File +
  +
is - +Variable in class org.luaj.vm2.LoadState +
input stream from which we are loading +
is_vararg - +Variable in class org.luaj.vm2.Prototype +
  +
isboolean() - +Method in class org.luaj.vm2.LuaBoolean +
  +
isboolean() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a boolean +
isclosed() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
isclosure() - +Method in class org.luaj.vm2.LuaClosure +
  +
isclosure() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a function that is a closure, + meaning interprets lua bytecode for its execution +
isfunction() - +Method in class org.luaj.vm2.LuaFunction +
  +
isfunction() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a function +
isfunction(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a function. +
isint() - +Method in class org.luaj.vm2.LuaInteger +
  +
isint() - +Method in class org.luaj.vm2.LuaString +
  +
isint() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a number and is representable by java int + without rounding or truncation +
isinttype() - +Method in class org.luaj.vm2.LuaInteger +
  +
isinttype() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a LuaInteger +
ISK(int) - +Static method in class org.luaj.vm2.Lua +
test whether value is a constant +
isLargeKey(LuaValue) - +Static method in class org.luaj.vm2.LuaTable +
  +
islong() - +Method in class org.luaj.vm2.LuaDouble +
  +
islong() - +Method in class org.luaj.vm2.LuaInteger +
  +
islong() - +Method in class org.luaj.vm2.LuaString +
  +
islong() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a number and is representable by java long + without rounding or truncation +
isMainThread() - +Method in class org.luaj.vm2.LuaThread +
  +
isnil() - +Method in class org.luaj.vm2.LuaNil +
  +
isnil() - +Method in class org.luaj.vm2.LuaValue +
Check if this is #NIL +
isnil(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is nil. +
isnoneornil(int) - +Method in class org.luaj.vm2.Varargs +
Return true if there is no argument or nil at argument i. +
isnumber() - +Method in class org.luaj.vm2.LuaDouble +
  +
isnumber() - +Method in class org.luaj.vm2.LuaNumber +
  +
isnumber() - +Method in class org.luaj.vm2.LuaString +
  +
isnumber() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a number +
isnumber(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a number. +
isstdfile() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
isstring() - +Method in class org.luaj.vm2.LuaDouble +
  +
isstring() - +Method in class org.luaj.vm2.LuaInteger +
  +
isstring() - +Method in class org.luaj.vm2.LuaNumber +
  +
isstring() - +Method in class org.luaj.vm2.LuaString +
  +
isstring() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a string +
isstring(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a string. +
istable() - +Method in class org.luaj.vm2.LuaTable +
  +
istable() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a table +
istable(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a table. +
isTailcall() - +Method in class org.luaj.vm2.TailcallVarargs +
  +
isTailcall() - +Method in class org.luaj.vm2.Varargs +
Return true if this is a TailcallVarargs +
isthread() - +Method in class org.luaj.vm2.LuaThread +
  +
isthread() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a thread +
isthread(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a thread. +
isUserClass(String) - +Static method in class org.luaj.vm2.server.LuajClassLoader +
Test if a class name should be considered a user class and loaded + by this loader, or a system class and loaded by the system loader. +
isuserdata() - +Method in class org.luaj.vm2.LuaUserdata +
  +
isuserdata(Class) - +Method in class org.luaj.vm2.LuaUserdata +
  +
isuserdata() - +Method in class org.luaj.vm2.LuaValue +
Check if this is a userdata +
isuserdata(Class) - +Method in class org.luaj.vm2.LuaValue +
Check if this is a userdata of type c +
isuserdata(int) - +Method in class org.luaj.vm2.Varargs +
Tests if argument i is a userdata. +
isvalidkey() - +Method in class org.luaj.vm2.LuaDouble +
  +
isvalidkey() - +Method in class org.luaj.vm2.LuaNil +
  +
isvalidkey() - +Method in class org.luaj.vm2.LuaValue +
Return true if this is a valid key in a table index operation. +
isValidUtf8() - +Method in class org.luaj.vm2.LuaString +
Check that a byte sequence is valid UTF-8 +
isvalue(int) - +Method in class org.luaj.vm2.Varargs +
Tests if a value exists at argument i. +
+
+

+J

+
+
java_searcher - +Variable in class org.luaj.vm2.lib.PackageLib +
Loader that loads as a Java class. +
JmeIoLib - Class in org.luaj.vm2.lib.jme
Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
JmeIoLib() - +Constructor for class org.luaj.vm2.lib.jme.JmeIoLib +
  +
JmePlatform - Class in org.luaj.vm2.lib.jme
The JmePlatform class is a convenience class to standardize + how globals tables are initialized for the JME platform.
JmePlatform() - +Constructor for class org.luaj.vm2.lib.jme.JmePlatform +
  +
JseBaseLib - Class in org.luaj.vm2.lib.jse
Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
JseBaseLib() - +Constructor for class org.luaj.vm2.lib.jse.JseBaseLib +
  +
JseIoLib - Class in org.luaj.vm2.lib.jse
Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
JseIoLib() - +Constructor for class org.luaj.vm2.lib.jse.JseIoLib +
  +
JseMathLib - Class in org.luaj.vm2.lib.jse
Subclass of LibFunction which implements the lua standard math + library.
JseMathLib() - +Constructor for class org.luaj.vm2.lib.jse.JseMathLib +
  +
JseOsLib - Class in org.luaj.vm2.lib.jse
Subclass of LibFunction which implements the standard lua os library.
JseOsLib() - +Constructor for class org.luaj.vm2.lib.jse.JseOsLib +
public constructor +
JsePlatform - Class in org.luaj.vm2.lib.jse
The JsePlatform class is a convenience class to standardize + how globals tables are initialized for the JSE platform.
JsePlatform() - +Constructor for class org.luaj.vm2.lib.jse.JsePlatform +
  +
JseProcess - Class in org.luaj.vm2.lib.jse
Analog of Process that pipes input and output to client-specified streams.
JseProcess(String[], InputStream, OutputStream, OutputStream) - +Constructor for class org.luaj.vm2.lib.jse.JseProcess +
Construct a process around a command, with specified streams to redirect input and output to. +
JseProcess(String, InputStream, OutputStream, OutputStream) - +Constructor for class org.luaj.vm2.lib.jse.JseProcess +
Construct a process around a command, with specified streams to redirect input and output to. +
JSTR_NAN - +Static variable in class org.luaj.vm2.LuaDouble +
Constant String representation for NaN (not a number), "nan" +
JSTR_NEGINF - +Static variable in class org.luaj.vm2.LuaDouble +
Constant String representation for negative infinity, "-inf" +
JSTR_POSINF - +Static variable in class org.luaj.vm2.LuaDouble +
Constant String representation for positive infinity, "inf" +
+
+

+K

+
+
k - +Variable in class org.luaj.vm2.Prototype +
  +
key - +Variable in class org.luaj.vm2.WeakTable.WeakSlot +
  +
keyCount() - +Method in class org.luaj.vm2.LuaTable +
This may be deprecated in a future release. +
keyeq(LuaValue) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
keyindex(int) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
keys() - +Method in class org.luaj.vm2.LuaTable +
This may be deprecated in a future release. +
+
+

+L

+
+
lastIndexOf(LuaString) - +Method in class org.luaj.vm2.LuaString +
Find the last index of a string in this string +
lastline - +Variable in class org.luaj.vm2.LuaThread.State +
  +
lastlinedefined - +Variable in class org.luaj.vm2.Prototype +
  +
launch(String, Object[]) - +Method in class org.luaj.vm2.server.DefaultLauncher +
Launches the script with chunk name 'main' +
launch(InputStream, Object[]) - +Method in class org.luaj.vm2.server.DefaultLauncher +
Launches the script with chunk name 'main' and loading using modes 'bt' +
launch(Reader, Object[]) - +Method in class org.luaj.vm2.server.DefaultLauncher +
Launches the script with chunk name 'main' +
launch(String, Object[]) - +Method in interface org.luaj.vm2.server.Launcher +
Launch a script contained in a String. +
launch(InputStream, Object[]) - +Method in interface org.luaj.vm2.server.Launcher +
Launch a script from an InputStream. +
launch(Reader, Object[]) - +Method in interface org.luaj.vm2.server.Launcher +
Launch a script from a Reader. +
Launcher - Interface in org.luaj.vm2.server
Interface to launch lua scripts using the LuajClassLoader.
LE - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__le" for use as metatag +
len() - +Method in class org.luaj.vm2.LuaString +
  +
len() - +Method in class org.luaj.vm2.LuaTable +
  +
LEN - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__len" for use as metatag +
len() - +Method in class org.luaj.vm2.LuaValue +
Length operator: return lua length of object (#this) including metatag processing as java int +
lenerror() - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError based on the len operator, + typically due to an invalid operand type +
length() - +Method in class org.luaj.vm2.LuaString +
  +
length() - +Method in class org.luaj.vm2.LuaTable +
  +
length() - +Method in class org.luaj.vm2.LuaValue +
Length operator: return lua length of object (#this) including metatag processing as java int +
lengthAsUtf8(char[]) - +Static method in class org.luaj.vm2.LuaString +
Count the number of bytes required to encode the string as UTF-8. +
level - +Variable in exception org.luaj.vm2.LuaError +
  +
LFIELDS_PER_FLUSH - +Static variable in class org.luaj.vm2.Lua +
  +
LibFunction - Class in org.luaj.vm2.lib
Subclass of LuaFunction common to Java functions exposed to lua.
LibFunction() - +Constructor for class org.luaj.vm2.lib.LibFunction +
Default constructor for use by subclasses +
linedefined - +Variable in class org.luaj.vm2.Prototype +
  +
lineinfo - +Variable in class org.luaj.vm2.Prototype +
  +
listOf(LuaValue[]) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied array values. +
listOf(LuaValue[], Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied array values. +
load(Prototype, String, LuaValue) - +Method in class org.luaj.vm2.compiler.LuaC +
  +
load(InputStream, String, Globals) - +Method in class org.luaj.vm2.compiler.LuaC +
Deprecated. Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly. +
load(String, String) - +Method in class org.luaj.vm2.Globals +
Convenience function to load a string value as a script. +
load(String) - +Method in class org.luaj.vm2.Globals +
Convenience function to load a string value as a script. +
load(String, String, LuaTable) - +Method in class org.luaj.vm2.Globals +
Convenience function to load a string value as a script with a custom environment. +
load(Reader, String) - +Method in class org.luaj.vm2.Globals +
Load the content form a reader as a text file. +
load(Reader, String, LuaTable) - +Method in class org.luaj.vm2.Globals +
Load the content form a reader as a text file, supplying a custom environment. +
load(InputStream, String, String, LuaValue) - +Method in class org.luaj.vm2.Globals +
Load the content form an input stream as a binary chunk or text file. +
load(Prototype, String, LuaValue) - +Method in interface org.luaj.vm2.Globals.Loader +
Convert the prototype into a LuaFunction with the supplied environment. +
load(Prototype, String, LuaValue) - +Method in class org.luaj.vm2.luajc.LuaJC +
  +
load(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Load a library instance by calling it with and empty string as the modname, + and this Globals as the environment. +
loadClass(String) - +Method in class org.luaj.vm2.server.LuajClassLoader +
  +
loader - +Variable in class org.luaj.vm2.Globals +
The installed loader. +
loadfile(String) - +Method in class org.luaj.vm2.Globals +
Convenience function for loading a file that is either binary lua or lua source. +
loadFile(String, String, LuaValue) - +Method in class org.luaj.vm2.lib.BaseLib +
Load from a named file, returning the chunk or nil,error of can't load +
loadFunction(LuaString) - +Method in class org.luaj.vm2.LoadState +
Load a function prototype from the input stream +
loadHeader() - +Method in class org.luaj.vm2.LoadState +
Load the lua chunk header values. +
loadlib(Varargs) - +Method in class org.luaj.vm2.lib.PackageLib.loadlib +
  +
loadPrototype(InputStream, String, String) - +Method in class org.luaj.vm2.Globals +
Load lua source or lua binary from an input stream into a Prototype. +
LoadState - Class in org.luaj.vm2
Class to undump compiled lua bytecode into a Prototype instances.
loadStream(InputStream, String, String, LuaValue) - +Method in class org.luaj.vm2.lib.BaseLib +
  +
LocVars - Class in org.luaj.vm2
Data class to hold debug information relating to local variables for a Prototype
LocVars(LuaString, int, int) - +Constructor for class org.luaj.vm2.LocVars +
Construct a LocVars instance. +
locvars - +Variable in class org.luaj.vm2.Prototype +
  +
longBitsToLuaNumber(long) - +Static method in class org.luaj.vm2.LoadState +
Convert bits in a long value to a LuaValue. +
lt(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
LT - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__lt" for use as metatag +
lt(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +
lt(double) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +
lt(int) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +
lt_b(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt_b(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt_b(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
lt_b(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt_b(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt_b(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
lt_b(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
lt_b(int) - +Method in class org.luaj.vm2.LuaString +
  +
lt_b(double) - +Method in class org.luaj.vm2.LuaString +
  +
lt_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
lt_b(int) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +
lt_b(double) - +Method in class org.luaj.vm2.LuaValue +
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
lteq(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
lteq(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +
lteq(double) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +
lteq(int) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +
lteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq_b(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq_b(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
lteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq_b(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq_b(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
lteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
lteq_b(int) - +Method in class org.luaj.vm2.LuaString +
  +
lteq_b(double) - +Method in class org.luaj.vm2.LuaString +
  +
lteq_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +
lteq_b(int) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +
lteq_b(double) - +Method in class org.luaj.vm2.LuaValue +
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +
Lua - Class in org.luaj.vm2
Constants for lua limits and opcodes.
Lua() - +Constructor for class org.luaj.vm2.Lua +
  +
LUA_MULTRET - +Static variable in class org.luaj.vm2.Lua +
use return values from previous op +
lua_resume(LuaThread, Varargs) - +Method in class org.luaj.vm2.LuaThread.State +
  +
lua_searcher - +Variable in class org.luaj.vm2.lib.PackageLib +
Loader that loads as a lua script using the lua path currently in PackageLib.searchpath +
LUA_SIGNATURE - +Static variable in class org.luaj.vm2.LoadState +
Signature byte indicating the file is a compiled binary chunk +
LUA_TBOOLEAN - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TFUNCTION - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TINT - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TLIGHTUSERDATA - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TNIL - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TNONE - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TNUMBER - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TSTRING - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TTABLE - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TTHREAD - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TUSERDATA - +Static variable in class org.luaj.vm2.LoadState +
  +
LUA_TVALUE - +Static variable in class org.luaj.vm2.LoadState +
  +
lua_yield(Varargs) - +Method in class org.luaj.vm2.LuaThread.State +
  +
LuaBoolean - Class in org.luaj.vm2
Extension of LuaValue which can hold a Java boolean as its value.
luaByte(int) - +Method in class org.luaj.vm2.LuaString +
  +
LuaC - Class in org.luaj.vm2.compiler
Compiler for Lua.
LuaC() - +Constructor for class org.luaj.vm2.compiler.LuaC +
  +
LUAC_FORMAT - +Static variable in class org.luaj.vm2.LoadState +
for header of binary files -- this is the official format +
LUAC_HEADERSIZE - +Static variable in class org.luaj.vm2.LoadState +
size of header of binary files +
LUAC_TAIL - +Static variable in class org.luaj.vm2.LoadState +
Data to catch conversion errors +
LUAC_VERSION - +Static variable in class org.luaj.vm2.LoadState +
for header of binary files -- this is Lua 5.2 +
LuaClosure - Class in org.luaj.vm2
Extension of LuaFunction which executes lua bytecode.
LuaClosure(Prototype, LuaValue) - +Constructor for class org.luaj.vm2.LuaClosure +
Create a closure around a Prototype with a specific environment. +
LuaDouble - Class in org.luaj.vm2
Extension of LuaNumber which can hold a Java double as its value.
LuaError - Exception in org.luaj.vm2
RuntimeException that is thrown and caught in response to a lua error.
LuaError(Throwable) - +Constructor for exception org.luaj.vm2.LuaError +
Construct LuaError when a program exception occurs. +
LuaError(String) - +Constructor for exception org.luaj.vm2.LuaError +
Construct a LuaError with a specific message. +
LuaError(String, int) - +Constructor for exception org.luaj.vm2.LuaError +
Construct a LuaError with a message, and level to draw line number information from. +
LuaError(LuaValue) - +Constructor for exception org.luaj.vm2.LuaError +
Construct a LuaError with a LuaValue as the message object, + and level to draw line number information from. +
LuaFunction - Class in org.luaj.vm2
Base class for functions implemented in Java.
LuaFunction() - +Constructor for class org.luaj.vm2.LuaFunction +
  +
LuaInteger - Class in org.luaj.vm2
Extension of LuaNumber which can hold a Java int as its value.
LuajavaLib - Class in org.luaj.vm2.lib.jse
Subclass of LibFunction which implements the features of the luajava package.
LuajavaLib() - +Constructor for class org.luaj.vm2.lib.jse.LuajavaLib +
  +
LuaJC - Class in org.luaj.vm2.luajc
Implementation of Globals.Compiler which does direct + lua-to-java-bytecode compiling.
LuaJC() - +Constructor for class org.luaj.vm2.luajc.LuaJC +
  +
LuajClassLoader - Class in org.luaj.vm2.server
Class loader that can be used to launch a lua script in a Java VM that has a + unique set of classes for org.luaj classes.
LuajClassLoader() - +Constructor for class org.luaj.vm2.server.LuajClassLoader +
  +
luaMain(LuaValue, String[]) - +Static method in class org.luaj.vm2.lib.jse.JsePlatform +
Simple wrapper for invoking a lua function with command line arguments. +
LuaNil - Class in org.luaj.vm2
Class to encapsulate behavior of the singleton instance nil
LuaNumber - Class in org.luaj.vm2
Base class for representing numbers as lua values directly.
LuaNumber() - +Constructor for class org.luaj.vm2.LuaNumber +
  +
luaP_opmodes - +Static variable in class org.luaj.vm2.Lua +
  +
LuaString - Class in org.luaj.vm2
Subclass of LuaValue for representing lua strings.
LuaTable - Class in org.luaj.vm2
Subclass of LuaValue for representing lua tables.
LuaTable() - +Constructor for class org.luaj.vm2.LuaTable +
Construct empty table +
LuaTable(int, int) - +Constructor for class org.luaj.vm2.LuaTable +
Construct table with preset capacity. +
LuaTable(LuaValue[], LuaValue[], Varargs) - +Constructor for class org.luaj.vm2.LuaTable +
Construct table with named and unnamed parts. +
LuaTable(Varargs) - +Constructor for class org.luaj.vm2.LuaTable +
Construct table of unnamed elements. +
LuaTable(Varargs, int) - +Constructor for class org.luaj.vm2.LuaTable +
Construct table of unnamed elements. +
LuaThread - Class in org.luaj.vm2
Subclass of LuaValue that implements + a lua coroutine thread using Java Threads.
LuaThread(Globals) - +Constructor for class org.luaj.vm2.LuaThread +
Private constructor for main thread only +
LuaThread(Globals, LuaValue) - +Constructor for class org.luaj.vm2.LuaThread +
Create a LuaThread around a function and environment +
LuaThread.State - Class in org.luaj.vm2
 
LuaUserdata - Class in org.luaj.vm2
 
LuaUserdata(Object) - +Constructor for class org.luaj.vm2.LuaUserdata +
  +
LuaUserdata(Object, LuaValue) - +Constructor for class org.luaj.vm2.LuaUserdata +
  +
LuaValue - Class in org.luaj.vm2
Base class for all concrete lua type values.
LuaValue() - +Constructor for class org.luaj.vm2.LuaValue +
  +
+
+

+M

+
+
m_bytes - +Variable in class org.luaj.vm2.LuaString +
The bytes for the string. +
m_instance - +Variable in class org.luaj.vm2.LuaUserdata +
  +
m_length - +Variable in class org.luaj.vm2.LuaString +
The number of bytes that comprise this string +
m_metatable - +Variable in class org.luaj.vm2.LuaTable +
metatable for this table, or null +
m_metatable - +Variable in class org.luaj.vm2.LuaUserdata +
  +
m_offset - +Variable in class org.luaj.vm2.LuaString +
The offset into the byte array, 0 means start at the first byte +
make(boolean, boolean) - +Static method in class org.luaj.vm2.WeakTable +
  +
makeroom(int, int) - +Method in class org.luaj.vm2.Buffer +
Ensure there is enough room before and after the bytes. +
MASK_A - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_B - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_Bx - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_C - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_NOT_A - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_NOT_B - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_NOT_Bx - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_NOT_C - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_NOT_OP - +Static variable in class org.luaj.vm2.Lua +
  +
MASK_OP - +Static variable in class org.luaj.vm2.Lua +
  +
MathLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard math + library.
MathLib() - +Constructor for class org.luaj.vm2.lib.MathLib +
Construct a MathLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + MathLib.call(LuaValue, LuaValue). +
MATHLIB - +Static variable in class org.luaj.vm2.lib.MathLib +
Pointer to the latest MathLib instance, used only to dispatch + math.exp to tha correct platform math library. +
MathLib.BinaryOp - Class in org.luaj.vm2.lib
 
MathLib.BinaryOp() - +Constructor for class org.luaj.vm2.lib.MathLib.BinaryOp +
  +
MathLib.UnaryOp - Class in org.luaj.vm2.lib
 
MathLib.UnaryOp() - +Constructor for class org.luaj.vm2.lib.MathLib.UnaryOp +
  +
MAX_CALLSTACK - +Static variable in class org.luaj.vm2.LuaThread +
  +
MAX_OP - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_A - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_Ax - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_B - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_Bx - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_C - +Static variable in class org.luaj.vm2.Lua +
  +
MAXARG_sBx - +Static variable in class org.luaj.vm2.Lua +
  +
MAXINDEXRK - +Static variable in class org.luaj.vm2.Lua +
  +
maxstacksize - +Variable in class org.luaj.vm2.Prototype +
  +
METATABLE - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__metatable" for use as metatag +
metatableOf(LuaValue) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Metatable instance from the given LuaValue +
metatag(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Get particular metatag, or return LuaValue.NIL if it doesn't exist +
method(String) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 0 arguments, including metatag processing, + and return only the first return value. +
method(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 0 arguments, including metatag processing, + and return only the first return value. +
method(String, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 1 argument, including metatag processing, + and return only the first return value. +
method(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 1 argument, including metatag processing, + and return only the first return value. +
method(String, LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 2 arguments, including metatag processing, + and return only the first return value. +
method(LuaValue, LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Call named method on this with 2 arguments, including metatag processing, + and return only the first return value. +
MINUSONE - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue number constant equal to -1 +
mod(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
mod(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
mod(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
mod(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
mod(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
mod(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
mod(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
mod(double) - +Method in class org.luaj.vm2.LuaString +
  +
mod(int) - +Method in class org.luaj.vm2.LuaString +
  +
MOD - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__mod" for use as metatag +
mod(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing. +
mod(double) - +Method in class org.luaj.vm2.LuaValue +
Modulo: Perform numeric modulo operation with another value + of double type without metatag processing +
mod(int) - +Method in class org.luaj.vm2.LuaValue +
Modulo: Perform numeric modulo operation with another value + of int type without metatag processing +
MODE - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__mode" for use as metatag +
modFrom(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
modFrom(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
modFrom(double) - +Method in class org.luaj.vm2.LuaString +
  +
modFrom(double) - +Method in class org.luaj.vm2.LuaValue +
Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing +
mul(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
mul(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
mul(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
mul(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
mul(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
mul(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
mul(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
mul(double) - +Method in class org.luaj.vm2.LuaString +
  +
mul(int) - +Method in class org.luaj.vm2.LuaString +
  +
MUL - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__mul" for use as metatag +
mul(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing. +
mul(double) - +Method in class org.luaj.vm2.LuaValue +
Multiply: Perform numeric multiply operation with another value + of double type with metatag processing +
mul(int) - +Method in class org.luaj.vm2.LuaValue +
Multiply: Perform numeric multiply operation with another value + of int type with metatag processing +
+
+

+N

+
+
name - +Variable in class org.luaj.vm2.lib.LibFunction +
The common name for this function, useful for debugging. +
name() - +Method in class org.luaj.vm2.LuaClosure +
  +
name() - +Method in class org.luaj.vm2.LuaFunction +
Return a human-readable name for this function. +
name - +Variable in class org.luaj.vm2.Upvaldesc +
  +
NAN - +Static variable in class org.luaj.vm2.LuaDouble +
Constant LuaDouble representing NaN (not a number) +
narg() - +Method in class org.luaj.vm2.LuaValue +
  +
narg() - +Method in class org.luaj.vm2.TailcallVarargs +
  +
narg() - +Method in class org.luaj.vm2.Varargs +
Get the number of arguments, or 0 if there are none. +
neg() - +Method in class org.luaj.vm2.LuaDouble +
  +
neg() - +Method in class org.luaj.vm2.LuaInteger +
  +
neg() - +Method in class org.luaj.vm2.LuaString +
  +
neg() - +Method in class org.luaj.vm2.LuaValue +
Unary minus: return negative value (-this) as defined by lua unary minus operator +
NEGINF - +Static variable in class org.luaj.vm2.LuaDouble +
Constant LuaDouble representing negative infinity +
neq(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Notquals: Perform inequality comparison with another value + including metatag processing using LuaValue.EQ. +
neq_b(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Notquals: Perform inequality comparison with another value + including metatag processing using LuaValue.EQ. +
NEWINDEX - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__newindex" for use as metatag +
NewLauncher() - +Static method in class org.luaj.vm2.server.LuajClassLoader +
Construct a default Launcher instance that will load classes in + its own LuajClassLoader using the default implementation class + DefaultLauncher. +
NewLauncher(Class<? extends Launcher>) - +Static method in class org.luaj.vm2.server.LuajClassLoader +
Construct a Launcher instance that will load classes in + its own LuajClassLoader using a user-supplied implementation class + that implements Launcher. +
newupe() - +Static method in class org.luaj.vm2.lib.LibFunction +
Java code generation utility to allocate storage for upvalue, leave it empty +
newupl(LuaValue) - +Static method in class org.luaj.vm2.lib.LibFunction +
Java code generation utility to allocate storage for upvalue, initialize with value +
newupn() - +Static method in class org.luaj.vm2.lib.LibFunction +
Java code generation utility to allocate storage for upvalue, initialize with nil +
next(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
Get the next element after a particular key in the table +
next(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Find the next key,value pair if this is a table, + return LuaValue.NIL if there are no more, or throw a LuaError if not a table. +
next - +Variable in class org.luaj.vm2.WeakTable.WeakSlot +
  +
NIL - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue constant corresponding to lua #NIL +
NILS - +Static variable in class org.luaj.vm2.LuaValue +
Array of LuaValue.NIL values to optimize filling stacks using System.arraycopy(). +
NO_REG - +Static variable in class org.luaj.vm2.Lua +
invalid register that fits in 8 bits +
NONE - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue constant corresponding to a Varargs list of no values +
not() - +Method in class org.luaj.vm2.LuaBoolean +
  +
not() - +Method in class org.luaj.vm2.LuaNil +
  +
not() - +Method in class org.luaj.vm2.LuaValue +
Unary not: return inverse boolean value (~this) as defined by lua not operator +
NOVALS - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue array constant with no values +
NUM_OPCODES - +Static variable in class org.luaj.vm2.Lua +
  +
NUMBER_FORMAT_FLOATS_OR_DOUBLES - +Static variable in class org.luaj.vm2.LoadState +
format corresponding to non-number-patched lua, all numbers are floats or doubles +
NUMBER_FORMAT_INTS_ONLY - +Static variable in class org.luaj.vm2.LoadState +
format corresponding to non-number-patched lua, all numbers are ints +
NUMBER_FORMAT_NUM_PATCH_INT32 - +Static variable in class org.luaj.vm2.LoadState +
format corresponding to number-patched lua, all numbers are 32-bit (4 byte) ints +
numparams - +Variable in class org.luaj.vm2.Prototype +
  +
+
+

+O

+
+
onCall(LuaFunction) - +Method in class org.luaj.vm2.lib.DebugLib +
  +
onCall(LuaClosure, Varargs, LuaValue[]) - +Method in class org.luaj.vm2.lib.DebugLib +
  +
ONE - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue number constant equal to 1 +
OneArgFunction - Class in org.luaj.vm2.lib
Abstract base class for Java function implementations that take one argument and + return one value.
OneArgFunction() - +Constructor for class org.luaj.vm2.lib.OneArgFunction +
Default constructor +
onInstruction(int, Varargs, int) - +Method in class org.luaj.vm2.lib.DebugLib +
  +
onInvoke(Varargs) - +Method in class org.luaj.vm2.lib.VarArgFunction +
  +
onInvoke(Varargs) - +Method in class org.luaj.vm2.LuaClosure +
  +
onInvoke(Varargs) - +Method in class org.luaj.vm2.LuaValue +
Callback used during tail call processing to invoke the function once. +
onReturn() - +Method in class org.luaj.vm2.lib.DebugLib +
  +
OP_ADD - +Static variable in class org.luaj.vm2.Lua +
  +
OP_AND - +Static variable in class org.luaj.vm2.Lua +
  +
OP_CALL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_CLOSURE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_CONCAT - +Static variable in class org.luaj.vm2.Lua +
  +
OP_DIV - +Static variable in class org.luaj.vm2.Lua +
  +
OP_EQ - +Static variable in class org.luaj.vm2.Lua +
  +
OP_EXTRAARG - +Static variable in class org.luaj.vm2.Lua +
  +
OP_FORLOOP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_FORPREP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_GE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_GETTABLE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_GETTABUP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_GETUPVAL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_GT - +Static variable in class org.luaj.vm2.Lua +
  +
OP_JMP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LEN - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LOADBOOL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LOADK - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LOADKX - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LOADNIL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_LT - +Static variable in class org.luaj.vm2.Lua +
  +
OP_MOD - +Static variable in class org.luaj.vm2.Lua +
  +
OP_MOVE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_MUL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_NEQ - +Static variable in class org.luaj.vm2.Lua +
  +
OP_NEWTABLE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_NOT - +Static variable in class org.luaj.vm2.Lua +
  +
OP_OR - +Static variable in class org.luaj.vm2.Lua +
  +
OP_POW - +Static variable in class org.luaj.vm2.Lua +
  +
OP_RETURN - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SELF - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SETLIST - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SETTABLE - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SETTABUP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SETUPVAL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_SUB - +Static variable in class org.luaj.vm2.Lua +
  +
OP_TAILCALL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_TEST - +Static variable in class org.luaj.vm2.Lua +
  +
OP_TESTSET - +Static variable in class org.luaj.vm2.Lua +
  +
OP_TFORCALL - +Static variable in class org.luaj.vm2.Lua +
  +
OP_TFORLOOP - +Static variable in class org.luaj.vm2.Lua +
  +
OP_UNM - +Static variable in class org.luaj.vm2.Lua +
  +
OP_VARARG - +Static variable in class org.luaj.vm2.Lua +
  +
OpArgK - +Static variable in class org.luaj.vm2.Lua +
  +
OpArgN - +Static variable in class org.luaj.vm2.Lua +
  +
OpArgR - +Static variable in class org.luaj.vm2.Lua +
  +
OpArgU - +Static variable in class org.luaj.vm2.Lua +
  +
opcode - +Variable in class org.luaj.vm2.lib.LibFunction +
User-defined opcode to differentiate between instances of the library function class. +
openFile(String, boolean, boolean, boolean, boolean) - +Method in class org.luaj.vm2.lib.IoLib +
Open a file in a particular mode. +
openFile(String, boolean, boolean, boolean, boolean) - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
openFile(String, boolean, boolean, boolean, boolean) - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
openProgram(String, String) - +Method in class org.luaj.vm2.lib.IoLib +
Start a new process and return a file for input or output +
openProgram(String, String) - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
openProgram(String, String) - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
OPNAMES - +Static variable in class org.luaj.vm2.Print +
String names for each lua opcode value. +
optboolean(boolean) - +Method in class org.luaj.vm2.LuaBoolean +
  +
optboolean(boolean) - +Method in class org.luaj.vm2.LuaNil +
  +
optboolean(boolean) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a boolean and return its boolean value +
optboolean(int, boolean) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a boolean value, defval if nil, or throw a LuaError if any other type. +
optclosure(LuaClosure) - +Method in class org.luaj.vm2.LuaClosure +
  +
optclosure(LuaClosure) - +Method in class org.luaj.vm2.LuaNil +
  +
optclosure(LuaClosure) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a closure and return as LuaClosure +
optclosure(int, LuaClosure) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a closure, defval if nil, or throw a LuaError if any other type. +
optdouble(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
optdouble(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
optdouble(double) - +Method in class org.luaj.vm2.LuaNil +
  +
optdouble(double) - +Method in class org.luaj.vm2.LuaString +
  +
optdouble(double) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a number or string convertible to number and return as double +
optdouble(int, double) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a double, defval if nil, or throw a LuaError if it cannot be converted to one. +
optfunction(LuaFunction) - +Method in class org.luaj.vm2.LuaFunction +
  +
optfunction(LuaFunction) - +Method in class org.luaj.vm2.LuaNil +
  +
optfunction(LuaFunction) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a function and return as LuaFunction +
optfunction(int, LuaFunction) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a function, defval if nil, or throw a LuaError if an incompatible type. +
optint(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
optint(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
optint(int) - +Method in class org.luaj.vm2.LuaNil +
  +
optint(int) - +Method in class org.luaj.vm2.LuaString +
  +
optint(int) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a number or string convertible to number and return as int +
optint(int, int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java int value, discarding any fractional part, defval if nil, or throw a LuaError if not a number. +
optinteger(LuaInteger) - +Method in class org.luaj.vm2.LuaDouble +
  +
optinteger(LuaInteger) - +Method in class org.luaj.vm2.LuaInteger +
  +
optinteger(LuaInteger) - +Method in class org.luaj.vm2.LuaNil +
  +
optinteger(LuaInteger) - +Method in class org.luaj.vm2.LuaString +
  +
optinteger(LuaInteger) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a number or string convertible to number and return as LuaInteger +
optinteger(int, LuaInteger) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java int value, defval if nil, or throw a LuaError if not a number or is not representable by a java int. +
optjstring(String) - +Method in class org.luaj.vm2.LuaDouble +
  +
optjstring(String) - +Method in class org.luaj.vm2.LuaInteger +
  +
optjstring(String) - +Method in class org.luaj.vm2.LuaNil +
  +
optjstring(String) - +Method in class org.luaj.vm2.LuaString +
  +
optjstring(String) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a string or number and return as Java String +
optjstring(int, String) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java String if a string or number, defval if nil, or throw a LuaError if any other type +
optlong(long) - +Method in class org.luaj.vm2.LuaDouble +
  +
optlong(long) - +Method in class org.luaj.vm2.LuaInteger +
  +
optlong(long) - +Method in class org.luaj.vm2.LuaNil +
  +
optlong(long) - +Method in class org.luaj.vm2.LuaString +
  +
optlong(long) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a number or string convertible to number and return as long +
optlong(int, long) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java long value, discarding any fractional part, defval if nil, or throw a LuaError if not a number. +
optnumber(LuaNumber) - +Method in class org.luaj.vm2.LuaDouble +
  +
optnumber(LuaNumber) - +Method in class org.luaj.vm2.LuaNil +
  +
optnumber(LuaNumber) - +Method in class org.luaj.vm2.LuaNumber +
  +
optnumber(LuaNumber) - +Method in class org.luaj.vm2.LuaString +
  +
optnumber(LuaNumber) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a number or string convertible to number and return as LuaNumber +
optnumber(int, LuaNumber) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaNumber, defval if nil, or throw a LuaError if not a number or string that can be converted to a number. +
optstring(LuaString) - +Method in class org.luaj.vm2.LuaDouble +
  +
optstring(LuaString) - +Method in class org.luaj.vm2.LuaInteger +
  +
optstring(LuaString) - +Method in class org.luaj.vm2.LuaNil +
  +
optstring(LuaString) - +Method in class org.luaj.vm2.LuaString +
  +
optstring(LuaString) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a string or number and return as LuaString +
optstring(int, LuaString) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaString if a string or number, defval if nil, or throw a LuaError if any other type +
opttable(LuaTable) - +Method in class org.luaj.vm2.LuaNil +
  +
opttable(LuaTable) - +Method in class org.luaj.vm2.LuaTable +
  +
opttable(LuaTable) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a table and return as LuaTable +
opttable(int, LuaTable) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaTable if a lua table, defval if nil, or throw a LuaError if any other type. +
optthread(LuaThread) - +Method in class org.luaj.vm2.LuaNil +
  +
optthread(LuaThread) - +Method in class org.luaj.vm2.LuaThread +
  +
optthread(LuaThread) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a thread and return as LuaThread +
optthread(int, LuaThread) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaThread if a lua thread, defval if nil, or throw a LuaError if any other type. +
optuserdata(Object) - +Method in class org.luaj.vm2.LuaNil +
  +
optuserdata(Class, Object) - +Method in class org.luaj.vm2.LuaNil +
  +
optuserdata(Object) - +Method in class org.luaj.vm2.LuaUserdata +
  +
optuserdata(Class, Object) - +Method in class org.luaj.vm2.LuaUserdata +
  +
optuserdata(Object) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a userdata and return the Object instance +
optuserdata(Class, Object) - +Method in class org.luaj.vm2.LuaValue +
Check that optional argument is a userdata whose instance is of a type + and return the Object instance +
optuserdata(int, Object) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if a userdata, defval if nil, or throw a LuaError if any other type. +
optuserdata(int, Class, Object) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + defval if nil, or throw a LuaError if any other type. +
optvalue(LuaValue) - +Method in class org.luaj.vm2.LuaNil +
  +
optvalue(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform argument check that this is not nil or none. +
optvalue(int, LuaValue) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a LuaValue if it exists, or defval. +
or(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform boolean or with another operand, based on lua rules for boolean evaluation. +
org.luaj.vm2 - package org.luaj.vm2
 
org.luaj.vm2.compiler - package org.luaj.vm2.compiler
 
org.luaj.vm2.lib - package org.luaj.vm2.lib
 
org.luaj.vm2.lib.jme - package org.luaj.vm2.lib.jme
 
org.luaj.vm2.lib.jse - package org.luaj.vm2.lib.jse
 
org.luaj.vm2.luajc - package org.luaj.vm2.luajc
 
org.luaj.vm2.server - package org.luaj.vm2.server
 
OrphanedThread - Error in org.luaj.vm2
Error sublcass that indicates a lua thread that is no + longer referenced has been detected.
OrphanedThread() - +Constructor for error org.luaj.vm2.OrphanedThread +
  +
OsLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the standard lua os library.
OsLib() - +Constructor for class org.luaj.vm2.lib.OsLib +
Create and OsLib instance. +
+
+

+P

+
+
p - +Variable in class org.luaj.vm2.LuaClosure +
  +
p - +Variable in class org.luaj.vm2.Prototype +
  +
package_ - +Variable in class org.luaj.vm2.Globals +
The PackageLib instance loaded into this Globals +
PackageLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard package and module + library functions.
PackageLib() - +Constructor for class org.luaj.vm2.lib.PackageLib +
  +
PackageLib.java_searcher - Class in org.luaj.vm2.lib
 
PackageLib.java_searcher() - +Constructor for class org.luaj.vm2.lib.PackageLib.java_searcher +
  +
PackageLib.loadlib - Class in org.luaj.vm2.lib
 
PackageLib.loadlib() - +Constructor for class org.luaj.vm2.lib.PackageLib.loadlib +
  +
PackageLib.lua_searcher - Class in org.luaj.vm2.lib
 
PackageLib.lua_searcher() - +Constructor for class org.luaj.vm2.lib.PackageLib.lua_searcher +
  +
PackageLib.preload_searcher - Class in org.luaj.vm2.lib
 
PackageLib.preload_searcher() - +Constructor for class org.luaj.vm2.lib.PackageLib.preload_searcher +
  +
PackageLib.require - Class in org.luaj.vm2.lib
require (modname) + + Loads the given module.
PackageLib.require() - +Constructor for class org.luaj.vm2.lib.PackageLib.require +
  +
PackageLib.searchpath - Class in org.luaj.vm2.lib
 
PackageLib.searchpath() - +Constructor for class org.luaj.vm2.lib.PackageLib.searchpath +
  +
peek() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
POS_A - +Static variable in class org.luaj.vm2.Lua +
  +
POS_Ax - +Static variable in class org.luaj.vm2.Lua +
  +
POS_B - +Static variable in class org.luaj.vm2.Lua +
  +
POS_Bx - +Static variable in class org.luaj.vm2.Lua +
  +
POS_C - +Static variable in class org.luaj.vm2.Lua +
  +
POS_OP - +Static variable in class org.luaj.vm2.Lua +
  +
POSINF - +Static variable in class org.luaj.vm2.LuaDouble +
Constant LuaDouble representing positive infinity +
pow(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
pow(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
pow(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
pow(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
pow(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
pow(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
pow(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
pow(double) - +Method in class org.luaj.vm2.LuaString +
  +
pow(int) - +Method in class org.luaj.vm2.LuaString +
  +
POW - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__pow" for use as metatag +
pow(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Raise to power: Raise this value to a power + including metatag processing. +
pow(double) - +Method in class org.luaj.vm2.LuaValue +
Raise to power: Raise this value to a power + of double type with metatag processing +
pow(int) - +Method in class org.luaj.vm2.LuaValue +
Raise to power: Raise this value to a power + of int type with metatag processing +
powWith(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
powWith(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
powWith(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
powWith(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
powWith(double) - +Method in class org.luaj.vm2.LuaString +
  +
powWith(int) - +Method in class org.luaj.vm2.LuaString +
  +
powWith(double) - +Method in class org.luaj.vm2.LuaValue +
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +
powWith(int) - +Method in class org.luaj.vm2.LuaValue +
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +
preload_searcher - +Variable in class org.luaj.vm2.lib.PackageLib +
Loader that loads from preload table if found there +
prepend(LuaString) - +Method in class org.luaj.vm2.Buffer +
Concatenate bytes from a LuaString onto the front of this buffer +
presize(int) - +Method in class org.luaj.vm2.LuaTable +
  +
presize(int, int) - +Method in class org.luaj.vm2.LuaTable +
  +
presize(int) - +Method in class org.luaj.vm2.LuaValue +
Preallocate the array part of a table to be a certain size, +
Print - Class in org.luaj.vm2
Debug helper class to pretty-print lua bytecodes.
Print() - +Constructor for class org.luaj.vm2.Print +
  +
print(Prototype) - +Static method in class org.luaj.vm2.Print +
Pretty-prints contents of a Prototype. +
printCode(Prototype) - +Static method in class org.luaj.vm2.Print +
Print the code in a prototype +
printFunction(Prototype, boolean) - +Static method in class org.luaj.vm2.Print +
Pretty-prints contents of a Prototype in short or long form. +
printOpCode(Prototype, int) - +Static method in class org.luaj.vm2.Print +
Print an opcode in a prototype +
printOpCode(PrintStream, Prototype, int) - +Static method in class org.luaj.vm2.Print +
Print an opcode in a prototype +
printStack(LuaValue[], int, Varargs) - +Static method in class org.luaj.vm2.Print +
  +
printState(LuaClosure, int, LuaValue[], int, Varargs) - +Static method in class org.luaj.vm2.Print +
Print the state of a LuaClosure that is being executed +
printToStream(PrintStream) - +Method in class org.luaj.vm2.LuaString +
Print the bytes of the LuaString to a PrintStream as if it were + an ASCII string, quoting and escaping control characters. +
Prototype - Class in org.luaj.vm2
Prototype representing compiled lua code.
Prototype() - +Constructor for class org.luaj.vm2.Prototype +
  +
Prototype(int) - +Constructor for class org.luaj.vm2.Prototype +
  +
ps - +Static variable in class org.luaj.vm2.Print +
  +
+
+

+R

+
+
raweq(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
raweq(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
raweq(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
raweq(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
raweq(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
raweq(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
raweq(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
raweq(LuaString) - +Method in class org.luaj.vm2.LuaString +
  +
raweq(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
raweq(LuaUserdata) - +Method in class org.luaj.vm2.LuaUserdata +
  +
raweq(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform direct equality comparison with another value + without metatag processing. +
raweq(LuaUserdata) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing. +
raweq(LuaString) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform direct equality comparison with a LuaString value + without metatag processing. +
raweq(double) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform direct equality comparison with a double value + without metatag processing. +
raweq(int) - +Method in class org.luaj.vm2.LuaValue +
Equals: Perform direct equality comparison with a int value + without metatag processing. +
rawget(int) - +Method in class org.luaj.vm2.LuaTable +
  +
rawget(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
rawget(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table without metatag processing. +
rawget(int) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table without metatag processing. +
rawget(String) - +Method in class org.luaj.vm2.LuaValue +
Get a value in a table without metatag processing. +
rawlen() - +Method in class org.luaj.vm2.LuaString +
  +
rawlen() - +Method in class org.luaj.vm2.LuaTable +
  +
rawlen() - +Method in class org.luaj.vm2.LuaValue +
Get raw length of table or string without metatag processing. +
rawset(int, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
rawset(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
caller must ensure key is not nil +
rawset(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(int, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(int, String) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(String, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(String, double) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(String, int) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawset(String, String) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing. +
rawsetlist(int, Varargs) - +Method in class org.luaj.vm2.LuaValue +
Set list values in a table without invoking metatag processing +
read() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
read(byte[], int, int) - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
relink(LuaTable.Slot) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
remaining() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
remove(String) - +Method in class org.luaj.vm2.lib.jse.JseOsLib +
  +
remove(String) - +Method in class org.luaj.vm2.lib.OsLib +
Deletes the file or directory with the given name. +
remove(int) - +Method in class org.luaj.vm2.LuaTable +
Remove the element at a position in a list-table +
remove(LuaTable.StrongSlot) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
rename(String, String) - +Method in class org.luaj.vm2.lib.jse.JseOsLib +
  +
rename(String, String) - +Method in class org.luaj.vm2.lib.OsLib +
Renames file or directory named oldname to newname. +
ResourceFinder - Interface in org.luaj.vm2.lib
Interface for opening application resource files such as scripts sources.
rest() - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
resume(Varargs) - +Method in class org.luaj.vm2.LuaThread +
  +
RKASK(int) - +Static method in class org.luaj.vm2.Lua +
code a constant index as a RK value +
run() - +Method in class org.luaj.vm2.LuaThread.State +
  +
running - +Variable in class org.luaj.vm2.Globals +
The currently running thread. +
+
+

+S

+
+
s_metatable - +Static variable in class org.luaj.vm2.LuaBoolean +
Shared static metatable for boolean values represented in lua. +
s_metatable - +Static variable in class org.luaj.vm2.LuaFunction +
Shared static metatable for all functions and closures. +
s_metatable - +Static variable in class org.luaj.vm2.LuaNil +
  +
s_metatable - +Static variable in class org.luaj.vm2.LuaNumber +
Shared static metatable for all number values represented in lua. +
s_metatable - +Static variable in class org.luaj.vm2.LuaString +
The singleton instance for string metatables that forwards to the string functions. +
s_metatable - +Static variable in class org.luaj.vm2.LuaThread +
Shared metatable for lua threads. +
scannumber() - +Method in class org.luaj.vm2.LuaString +
Convert to a number in base 10, or base 16 if the string starts with '0x', + or return Double.NaN if it cannot be converted to a number. +
scannumber(int) - +Method in class org.luaj.vm2.LuaString +
Convert to a number in a base, or return Double.NaN if not a number. +
seek(String, int) - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
set(int, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
set(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaTable +
caller must ensure key is not nil +
set(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
set(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(int, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(int, String) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(String, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(String, double) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(String, int) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(String, String) - +Method in class org.luaj.vm2.LuaValue +
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +
set(LuaValue) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
set(LuaTable.StrongSlot, LuaValue) - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
setIsLoaded(String, LuaTable) - +Method in class org.luaj.vm2.lib.PackageLib +
Allow packages to mark themselves as loaded +
setlocale(String, String) - +Method in class org.luaj.vm2.lib.OsLib +
Sets the current locale of the program. +
setLuaPath(String) - +Method in class org.luaj.vm2.lib.PackageLib +
Set the lua path used by this library instance to a new value. +
setmetatable(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
setmetatable(LuaValue) - +Method in class org.luaj.vm2.LuaUserdata +
  +
setmetatable(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Set the metatable for this LuaValue +
settable(LuaValue, LuaValue, LuaValue) - +Static method in class org.luaj.vm2.LuaValue +
Perform field assignment including metatag processing. +
setUpvalue(int, LuaValue) - +Method in class org.luaj.vm2.LuaClosure +
  +
setvalue(LuaValue) - +Method in class org.luaj.vm2.Buffer +
Set buffer contents as a LuaValue +
setValue(LuaValue) - +Method in class org.luaj.vm2.UpValue +
Set the value of the upvalue +
setvbuf(String, int) - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
shortsource() - +Method in class org.luaj.vm2.Prototype +
  +
SIZE_A - +Static variable in class org.luaj.vm2.Lua +
  +
SIZE_Ax - +Static variable in class org.luaj.vm2.Lua +
  +
SIZE_B - +Static variable in class org.luaj.vm2.Lua +
  +
SIZE_Bx - +Static variable in class org.luaj.vm2.Lua +
  +
SIZE_C - +Static variable in class org.luaj.vm2.Lua +
  +
SIZE_OP - +Static variable in class org.luaj.vm2.Lua +
  +
sort(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
Sort the table using a comparator. +
source - +Variable in class org.luaj.vm2.Prototype +
  +
SOURCE_BINARY_STRING - +Static variable in class org.luaj.vm2.LoadState +
Name for compiled chunks +
standardGlobals() - +Static method in class org.luaj.vm2.lib.jme.JmePlatform +
Create a standard set of globals for JME including all the libraries. +
standardGlobals() - +Static method in class org.luaj.vm2.lib.jse.JsePlatform +
Create a standard set of globals for JSE including all the libraries. +
startpc - +Variable in class org.luaj.vm2.LocVars +
The instruction offset when the variable comes into scope +
state - +Variable in class org.luaj.vm2.LuaThread +
  +
status - +Variable in class org.luaj.vm2.LuaThread.State +
  +
STATUS_DEAD - +Static variable in class org.luaj.vm2.LuaThread +
  +
STATUS_INITIAL - +Static variable in class org.luaj.vm2.LuaThread +
  +
STATUS_NAMES - +Static variable in class org.luaj.vm2.LuaThread +
  +
STATUS_NORMAL - +Static variable in class org.luaj.vm2.LuaThread +
  +
STATUS_RUNNING - +Static variable in class org.luaj.vm2.LuaThread +
  +
STATUS_SUSPENDED - +Static variable in class org.luaj.vm2.LuaThread +
  +
STDERR - +Variable in class org.luaj.vm2.Globals +
The current default error stream. +
STDIN - +Variable in class org.luaj.vm2.Globals +
The current default input stream. +
STDOUT - +Variable in class org.luaj.vm2.Globals +
The current default output stream. +
strcmp(LuaString) - +Method in class org.luaj.vm2.LuaDouble +
  +
strcmp(LuaString) - +Method in class org.luaj.vm2.LuaInteger +
  +
strcmp(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
strcmp(LuaString) - +Method in class org.luaj.vm2.LuaString +
  +
strcmp(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform string comparison with another value + of any type + using string comparison based on byte values. +
strcmp(LuaString) - +Method in class org.luaj.vm2.LuaValue +
Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values. +
strengthen(Object) - +Static method in class org.luaj.vm2.WeakTable +
Unwrap a LuaValue from a WeakReference and/or WeakUserdata. +
StringLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard string + library.
StringLib() - +Constructor for class org.luaj.vm2.lib.StringLib +
Construct a StringLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + StringLib.call(LuaValue, LuaValue). +
strongkey() - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
strongvalue() - +Method in class org.luaj.vm2.LuaValue +
Return this value as a strong reference, or null if it was weak and is no longer referenced. +
strongvalue() - +Method in class org.luaj.vm2.WeakTable.WeakSlot +
  +
strvalue() - +Method in class org.luaj.vm2.LuaDouble +
  +
strvalue() - +Method in class org.luaj.vm2.LuaFunction +
  +
strvalue() - +Method in class org.luaj.vm2.LuaInteger +
  +
strvalue() - +Method in class org.luaj.vm2.LuaString +
  +
strvalue() - +Method in class org.luaj.vm2.LuaValue +
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +
sub(LuaValue) - +Method in class org.luaj.vm2.LuaDouble +
  +
sub(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
sub(int) - +Method in class org.luaj.vm2.LuaDouble +
  +
sub(LuaValue) - +Method in class org.luaj.vm2.LuaInteger +
  +
sub(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
sub(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
sub(LuaValue) - +Method in class org.luaj.vm2.LuaString +
  +
sub(double) - +Method in class org.luaj.vm2.LuaString +
  +
sub(int) - +Method in class org.luaj.vm2.LuaString +
  +
SUB - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__sub" for use as metatag +
sub(LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing. +
sub(double) - +Method in class org.luaj.vm2.LuaValue +
Subtract: Perform numeric subtract operation with another value + of double type with metatag processing +
sub(int) - +Method in class org.luaj.vm2.LuaValue +
Subtract: Perform numeric subtract operation with another value + of int type with metatag processing +
subargs(int) - +Method in class org.luaj.vm2.LuaValue +
Create a Varargs instance containing arguments starting at index start +
subargs(int) - +Method in class org.luaj.vm2.TailcallVarargs +
  +
subargs(int) - +Method in class org.luaj.vm2.Varargs +
Create a Varargs instance containing arguments starting at index start +
subFrom(double) - +Method in class org.luaj.vm2.LuaDouble +
  +
subFrom(double) - +Method in class org.luaj.vm2.LuaInteger +
  +
subFrom(int) - +Method in class org.luaj.vm2.LuaInteger +
  +
subFrom(double) - +Method in class org.luaj.vm2.LuaString +
  +
subFrom(double) - +Method in class org.luaj.vm2.LuaValue +
Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing +
subFrom(int) - +Method in class org.luaj.vm2.LuaValue +
Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing +
substring(int, int) - +Method in class org.luaj.vm2.LuaString +
Take a substring using Java zero-based indexes for begin and end or range. +
+
+

+T

+
+
TableLib - Class in org.luaj.vm2.lib
Subclass of LibFunction which implements the lua standard table + library.
TableLib() - +Constructor for class org.luaj.vm2.lib.TableLib +
  +
tableOf() - +Static method in class org.luaj.vm2.LuaValue +
Construct an empty LuaTable. +
tableOf(Varargs, int) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied array values. +
tableOf(int, int) - +Static method in class org.luaj.vm2.LuaValue +
Construct an empty LuaTable preallocated to hold array and hashed elements +
tableOf(LuaValue[]) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied named values. +
tableOf(LuaValue[], LuaValue[]) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied named values and sequential elements. +
tableOf(LuaValue[], LuaValue[], Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs. +
tailcallOf(LuaValue, Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a TailcallVarargs around a function and arguments. +
TailcallVarargs - Class in org.luaj.vm2
Subclass of Varargs that represents a lua tail call + in a Java library function execution environment.
TailcallVarargs(LuaValue, Varargs) - +Constructor for class org.luaj.vm2.TailcallVarargs +
  +
TailcallVarargs(LuaValue, LuaValue, Varargs) - +Constructor for class org.luaj.vm2.TailcallVarargs +
  +
TBOOLEAN - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua booleans +
testAMode(int) - +Static method in class org.luaj.vm2.Lua +
  +
testfor_b(LuaValue, LuaValue) - +Method in class org.luaj.vm2.LuaValue +
Perform end-condition test in for-loop processing. +
testTMode(int) - +Static method in class org.luaj.vm2.Lua +
  +
TFUNCTION - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua functions +
thread_orphan_check_interval - +Static variable in class org.luaj.vm2.LuaThread +
Polling interval, in milliseconds, which each thread uses while waiting to + return from a yielded state to check if the lua threads is no longer + referenced and therefore should be garbage collected. +
ThreeArgFunction - Class in org.luaj.vm2.lib
Abstract base class for Java function implementations that take two arguments and + return one value.
ThreeArgFunction() - +Constructor for class org.luaj.vm2.lib.ThreeArgFunction +
Default constructor +
time(LuaTable) - +Method in class org.luaj.vm2.lib.OsLib +
Returns the current time when called without arguments, + or a time representing the date and time specified by the given table. +
TINT - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua numbers that are ints, for compatibility with lua 5.1 number patch only +
TLIGHTUSERDATA - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua light userdata, for compatibility with C-based lua only +
TMP_PREFIX - +Static variable in class org.luaj.vm2.lib.OsLib +
  +
TMP_SUFFIX - +Static variable in class org.luaj.vm2.lib.OsLib +
  +
tmpFile() - +Method in class org.luaj.vm2.lib.IoLib +
Open a temporary file. +
tmpFile() - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
tmpFile() - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
tmpname() - +Method in class org.luaj.vm2.lib.jse.JseOsLib +
  +
tmpname() - +Method in class org.luaj.vm2.lib.OsLib +
Returns a string with a file name that can be used for a temporary file. +
TNIL - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua nil +
TNONE - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua values that have no type, for example weak table entries +
TNUMBER - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua numbers +
toboolean() - +Method in class org.luaj.vm2.LuaBoolean +
  +
toboolean() - +Method in class org.luaj.vm2.LuaNil +
  +
toboolean() - +Method in class org.luaj.vm2.LuaValue +
Convert to boolean false if LuaValue.NIL or LuaValue.FALSE, true if anything else +
toboolean(int) - +Method in class org.luaj.vm2.Varargs +
Convert argument i to java boolean based on lua rules for boolean evaluation. +
tobyte() - +Method in class org.luaj.vm2.LuaDouble +
  +
tobyte() - +Method in class org.luaj.vm2.LuaInteger +
  +
tobyte() - +Method in class org.luaj.vm2.LuaString +
  +
tobyte() - +Method in class org.luaj.vm2.LuaValue +
Convert to byte if numeric, or 0 if not. +
tobyte(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java byte value, discarding any fractional part and truncating, + or 0 if not a number. +
tochar() - +Method in class org.luaj.vm2.LuaDouble +
  +
tochar() - +Method in class org.luaj.vm2.LuaInteger +
  +
tochar() - +Method in class org.luaj.vm2.LuaString +
  +
tochar() - +Method in class org.luaj.vm2.LuaValue +
Convert to char if numeric, or 0 if not. +
tochar(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java char value, discarding any fractional part and truncating, + or 0 if not a number. +
toClassname(String) - +Static method in class org.luaj.vm2.lib.PackageLib +
Convert lua filename to valid class name +
todouble() - +Method in class org.luaj.vm2.LuaDouble +
  +
todouble() - +Method in class org.luaj.vm2.LuaInteger +
  +
todouble() - +Method in class org.luaj.vm2.LuaString +
  +
todouble() - +Method in class org.luaj.vm2.LuaValue +
Convert to double if numeric, or 0 if not. +
todouble(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java double value or 0 if not a number. +
tofloat() - +Method in class org.luaj.vm2.LuaDouble +
  +
tofloat() - +Method in class org.luaj.vm2.LuaInteger +
  +
tofloat() - +Method in class org.luaj.vm2.LuaString +
  +
tofloat() - +Method in class org.luaj.vm2.LuaValue +
Convert to float if numeric, or 0 if not. +
tofloat(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java float value, discarding excess fractional part and truncating, + or 0 if not a number. +
toInputStream() - +Method in class org.luaj.vm2.LuaString +
Convert value to an input stream. +
toint() - +Method in class org.luaj.vm2.LuaDouble +
  +
toint() - +Method in class org.luaj.vm2.LuaInteger +
  +
toint() - +Method in class org.luaj.vm2.LuaString +
  +
toint() - +Method in class org.luaj.vm2.LuaValue +
Convert to int if numeric, or 0 if not. +
toint(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java int value, discarding any fractional part and truncating, + or 0 if not a number. +
tojstring() - +Method in class org.luaj.vm2.Buffer +
Convert the buffer to a Java String +
tojstring() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
tojstring() - +Method in class org.luaj.vm2.lib.LibFunction +
  +
tojstring() - +Method in class org.luaj.vm2.lib.PackageLib +
  +
tojstring() - +Method in class org.luaj.vm2.LocVars +
  +
tojstring() - +Method in class org.luaj.vm2.LuaBoolean +
  +
tojstring() - +Method in class org.luaj.vm2.LuaClosure +
  +
tojstring() - +Method in class org.luaj.vm2.LuaDouble +
  +
tojstring() - +Method in class org.luaj.vm2.LuaFunction +
  +
tojstring() - +Method in class org.luaj.vm2.LuaInteger +
  +
tojstring() - +Method in class org.luaj.vm2.LuaNil +
  +
tojstring() - +Method in class org.luaj.vm2.LuaString +
  +
tojstring() - +Method in class org.luaj.vm2.LuaUserdata +
  +
tojstring() - +Method in class org.luaj.vm2.LuaValue +
Convert to human readable String for any type. +
tojstring() - +Method in class org.luaj.vm2.UpValue +
Convert this upvalue to a Java String +
tojstring(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java String based on the type of the argument. +
tojstring() - +Method in class org.luaj.vm2.Varargs +
Convert the list of varargs values to a human readable java String. +
tolong() - +Method in class org.luaj.vm2.LuaDouble +
  +
tolong() - +Method in class org.luaj.vm2.LuaInteger +
  +
tolong() - +Method in class org.luaj.vm2.LuaString +
  +
tolong() - +Method in class org.luaj.vm2.LuaValue +
Convert to long if numeric, or 0 if not. +
tolong(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java long value, discarding any fractional part and truncating, + or 0 if not a number. +
toLuaValue() - +Method in class org.luaj.vm2.LuaTable +
  +
toLuaValue() - +Method in class org.luaj.vm2.WeakTable +
  +
tonumber() - +Method in class org.luaj.vm2.LuaDouble +
  +
tonumber() - +Method in class org.luaj.vm2.LuaNumber +
  +
tonumber() - +Method in class org.luaj.vm2.LuaString +
convert to a number using baee 10 or base 16 if it starts with '0x', + or NIL if it can't be converted +
tonumber(int) - +Method in class org.luaj.vm2.LuaString +
convert to a number using a supplied base, or NIL if it can't be converted +
tonumber() - +Method in class org.luaj.vm2.LuaValue +
Conditionally convert to lua number without throwing errors. +
toshort() - +Method in class org.luaj.vm2.LuaDouble +
  +
toshort() - +Method in class org.luaj.vm2.LuaInteger +
  +
toshort() - +Method in class org.luaj.vm2.LuaString +
  +
toshort() - +Method in class org.luaj.vm2.LuaValue +
Convert to short if numeric, or 0 if not. +
toshort(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java short value, discarding any fractional part and truncating, + or 0 if not a number. +
tostring() - +Method in class org.luaj.vm2.Buffer +
Convert the buffer to a LuaString +
toString() - +Method in class org.luaj.vm2.Buffer +
Convert the buffer to a Java String +
tostring() - +Method in class org.luaj.vm2.LuaDouble +
  +
tostring() - +Method in class org.luaj.vm2.LuaInteger +
  +
toString() - +Method in class org.luaj.vm2.LuaNil +
  +
tostring() - +Method in class org.luaj.vm2.LuaString +
  +
TOSTRING - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__tostring" for use as metatag +
toString() - +Method in class org.luaj.vm2.LuaValue +
Convert the value to a human readable string using LuaValue.tojstring() +
tostring() - +Method in class org.luaj.vm2.LuaValue +
Conditionally convert to lua string without throwing errors. +
toString() - +Method in class org.luaj.vm2.Prototype +
  +
toString() - +Method in class org.luaj.vm2.Upvaldesc +
  +
toString() - +Method in class org.luaj.vm2.UpValue +
  +
toString() - +Method in class org.luaj.vm2.Varargs +
Convert the value or values to a java String using Varargs.tojstring() +
touserdata() - +Method in class org.luaj.vm2.LuaUserdata +
  +
touserdata(Class) - +Method in class org.luaj.vm2.LuaUserdata +
  +
touserdata() - +Method in class org.luaj.vm2.LuaValue +
Convert to userdata instance, or null. +
touserdata(Class) - +Method in class org.luaj.vm2.LuaValue +
Convert to userdata instance if specific type, or null. +
touserdata(int) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if a userdata, or null. +
touserdata(int, Class) - +Method in class org.luaj.vm2.Varargs +
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, or null. +
TRACE - +Static variable in class org.luaj.vm2.lib.DebugLib +
  +
traceback(int) - +Method in class org.luaj.vm2.lib.DebugLib +
  +
traceback - +Variable in exception org.luaj.vm2.LuaError +
  +
TRUE - +Static variable in class org.luaj.vm2.LuaValue +
LuaBoolean constant corresponding to lua true +
TSTRING - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua strings +
TTABLE - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua tables +
TTHREAD - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua threads +
TUSERDATA - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for lua userdatas +
TVALUE - +Static variable in class org.luaj.vm2.LuaValue +
Type enumeration constant for unknown values, for compatibility with C-based lua only +
TwoArgFunction - Class in org.luaj.vm2.lib
Abstract base class for Java function implementations that take two arguments and + return one value.
TwoArgFunction() - +Constructor for class org.luaj.vm2.lib.TwoArgFunction +
Default constructor +
type() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
type() - +Method in class org.luaj.vm2.LuaBoolean +
  +
type() - +Method in class org.luaj.vm2.LuaFunction +
  +
type() - +Method in class org.luaj.vm2.LuaNil +
  +
type() - +Method in class org.luaj.vm2.LuaNumber +
  +
type() - +Method in class org.luaj.vm2.LuaString +
  +
type() - +Method in class org.luaj.vm2.LuaTable +
  +
type() - +Method in class org.luaj.vm2.LuaThread +
  +
type() - +Method in class org.luaj.vm2.LuaUserdata +
  +
type() - +Method in class org.luaj.vm2.LuaValue +
Get the enumeration value for the type of this value. +
type(int) - +Method in class org.luaj.vm2.Varargs +
Gets the type of argument i +
TYPE_NAMES - +Static variable in class org.luaj.vm2.LuaValue +
String array constant containing names of each of the lua value types +
typename() - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
typename() - +Method in class org.luaj.vm2.LuaBoolean +
  +
typename() - +Method in class org.luaj.vm2.LuaFunction +
  +
typename() - +Method in class org.luaj.vm2.LuaNil +
  +
typename() - +Method in class org.luaj.vm2.LuaNumber +
  +
typename() - +Method in class org.luaj.vm2.LuaString +
  +
typename() - +Method in class org.luaj.vm2.LuaTable +
  +
typename() - +Method in class org.luaj.vm2.LuaThread +
  +
typename() - +Method in class org.luaj.vm2.LuaUserdata +
  +
typename() - +Method in class org.luaj.vm2.LuaValue +
Get the String name of the type of this value. +
typerror(String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError indicating an invalid type was supplied to a function +
+
+

+U

+
+
undump(InputStream, String) - +Method in interface org.luaj.vm2.Globals.Undumper +
Load the supplied input stream into a prototype. +
undump(InputStream, String) - +Static method in class org.luaj.vm2.LoadState +
Load input stream as a lua binary chunk if the first 4 bytes are the lua binary signature. +
undumper - +Variable in class org.luaj.vm2.Globals +
The installed undumper. +
unimplemented(String) - +Method in class org.luaj.vm2.LuaValue +
Throw a LuaError indicating an operation is not implemented +
UNM - +Static variable in class org.luaj.vm2.LuaValue +
LuaString constant with value "__unm" for use as metatag +
unpack() - +Method in class org.luaj.vm2.LuaTable +
Unpack all the elements of this table +
unpack(int) - +Method in class org.luaj.vm2.LuaTable +
Unpack all the elements of this table from element i +
unpack(int, int) - +Method in class org.luaj.vm2.LuaTable +
Unpack the elements from i to j inclusive +
Upvaldesc - Class in org.luaj.vm2
 
Upvaldesc(LuaString, boolean, int) - +Constructor for class org.luaj.vm2.Upvaldesc +
  +
UpValue - Class in org.luaj.vm2
Upvalue used with Closure formulation
UpValue(LuaValue[], int) - +Constructor for class org.luaj.vm2.UpValue +
Create an upvalue relative to a stack +
upValues - +Variable in class org.luaj.vm2.LuaClosure +
  +
upvalues - +Variable in class org.luaj.vm2.Prototype +
  +
userdata() - +Method in class org.luaj.vm2.LuaUserdata +
  +
userdataOf(Object) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaUserdata for an object. +
userdataOf(Object, LuaValue) - +Static method in class org.luaj.vm2.LuaValue +
Construct a LuaUserdata for an object with a user supplied metatable. +
useWeakKeys() - +Method in class org.luaj.vm2.LuaTable +
  +
useWeakKeys() - +Method in class org.luaj.vm2.WeakTable +
  +
useWeakValues() - +Method in class org.luaj.vm2.LuaTable +
  +
useWeakValues() - +Method in class org.luaj.vm2.WeakTable +
  +
+
+

+V

+
+
v - +Variable in class org.luaj.vm2.LuaBoolean +
The value of the boolean +
v - +Variable in class org.luaj.vm2.LuaInteger +
The value being held by this instance. +
value() - +Method in class org.luaj.vm2.Buffer +
Get buffer contents as a LuaValue +
value - +Variable in class org.luaj.vm2.WeakTable.WeakSlot +
  +
valueOf(double) - +Static method in class org.luaj.vm2.LuaDouble +
  +
valueOf(int) - +Static method in class org.luaj.vm2.LuaInteger +
  +
valueOf(long) - +Static method in class org.luaj.vm2.LuaInteger +
Return a LuaNumber that represents the value provided +
valueOf(String) - +Static method in class org.luaj.vm2.LuaString +
Get a LuaString instance whose bytes match + the supplied Java String using the UTF8 encoding. +
valueOf(byte[], int, int) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString for a portion of a byte array. +
valueOf(char[]) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString using the supplied characters as byte values. +
valueOf(char[], int, int) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString using the supplied characters as byte values. +
valueOf(byte[]) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString for all the bytes in a byte array. +
valueOf(boolean) - +Static method in class org.luaj.vm2.LuaValue +
Convert java boolean to a LuaValue. +
valueOf(int) - +Static method in class org.luaj.vm2.LuaValue +
Convert java int to a LuaValue. +
valueOf(double) - +Static method in class org.luaj.vm2.LuaValue +
Convert java double to a LuaValue. +
valueOf(String) - +Static method in class org.luaj.vm2.LuaValue +
Convert java string to a LuaValue. +
valueOf(byte[]) - +Static method in class org.luaj.vm2.LuaValue +
Convert bytes in an array to a LuaValue. +
valueOf(byte[], int, int) - +Static method in class org.luaj.vm2.LuaValue +
Convert bytes in an array to a LuaValue. +
valueUsing(byte[], int, int) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString around, possibly using the the supplied + byte array as the backing store. +
valueUsing(byte[]) - +Static method in class org.luaj.vm2.LuaString +
Construct a LuaString for all the bytes in a byte array, possibly using + the supplied array as the backing store. +
VarArgFunction - Class in org.luaj.vm2.lib
Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
VarArgFunction() - +Constructor for class org.luaj.vm2.lib.VarArgFunction +
  +
Varargs - Class in org.luaj.vm2
Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
Varargs() - +Constructor for class org.luaj.vm2.Varargs +
  +
varargsOf(LuaValue[]) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around an array of LuaValues. +
varargsOf(LuaValue[], Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around an array of LuaValues. +
varargsOf(LuaValue[], int, int) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around an array of LuaValues. +
varargsOf(LuaValue[], int, int, Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around an array of LuaValues. +
varargsOf(LuaValue, Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around a set of 2 or more LuaValues. +
varargsOf(LuaValue, LuaValue, Varargs) - +Static method in class org.luaj.vm2.LuaValue +
Construct a Varargs around a set of 3 or more LuaValues. +
varname - +Variable in class org.luaj.vm2.LocVars +
The local variable name +
+
+

+W

+
+
waitFor() - +Method in class org.luaj.vm2.lib.jse.JseProcess +
Wait for the process to complete, and all pending output to finish. +
weaken(LuaValue) - +Static method in class org.luaj.vm2.WeakTable +
Self-sent message to convert a value to its weak counterpart +
WeakTable - Class in org.luaj.vm2
Subclass of LuaTable that provides weak key and weak value semantics.
WeakTable(boolean, boolean, LuaValue) - +Constructor for class org.luaj.vm2.WeakTable +
Construct a table with weak keys, weak values, or both +
WeakTable.WeakSlot - Class in org.luaj.vm2
 
WeakTable.WeakSlot(Object, Object, LuaTable.Slot) - +Constructor for class org.luaj.vm2.WeakTable.WeakSlot +
  +
wrap(LuaValue) - +Method in class org.luaj.vm2.LuaTable +
  +
wrap(LuaValue) - +Method in class org.luaj.vm2.WeakTable +
  +
wrapStderr() - +Method in class org.luaj.vm2.lib.IoLib +
Wrap the standard error output. +
wrapStderr() - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
wrapStderr() - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
wrapStdin() - +Method in class org.luaj.vm2.lib.IoLib +
Wrap the standard input. +
wrapStdin() - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
wrapStdin() - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
wrapStdout() - +Method in class org.luaj.vm2.lib.IoLib +
Wrap the standard output. +
wrapStdout() - +Method in class org.luaj.vm2.lib.jme.JmeIoLib +
  +
wrapStdout() - +Method in class org.luaj.vm2.lib.jse.JseIoLib +
  +
write(LuaString) - +Method in class org.luaj.vm2.lib.IoLib.File +
  +
write(DataOutputStream, int, int) - +Method in class org.luaj.vm2.LuaString +
  +
+
+

+Y

+
+
yield(Varargs) - +Method in class org.luaj.vm2.Globals +
Function which yields the current thread. +
+
+

+Z

+
+
ZERO - +Static variable in class org.luaj.vm2.LuaValue +
LuaValue number constant equal to 0 +
ZeroArgFunction - Class in org.luaj.vm2.lib
Abstract base class for Java function implementations that take no arguments and + return one value.
ZeroArgFunction() - +Constructor for class org.luaj.vm2.lib.ZeroArgFunction +
Default constructor +
+
+

+_

+
+
_file_close(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_flush(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_lines(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_read(LuaValue, Varargs) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_seek(LuaValue, String, int) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_setvbuf(LuaValue, String, int) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_file_write(LuaValue, Varargs) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_close(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_flush() - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_index(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_input(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_lines(String) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_open(String, String) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_output(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_popen(String, String) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_read(Varargs) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_tmpfile() - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_type(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_io_write(Varargs) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_lines_iter(LuaValue) - +Method in class org.luaj.vm2.lib.IoLib +
  +
_VERSION - +Static variable in class org.luaj.vm2.Lua +
version is supplied by ant build task +
+
+A B C D E F G H I J K L M N O P R S T U V W Y Z _ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/index.html b/lib/javadoc/luaj-javadoc/index.html new file mode 100644 index 000000000..bb638706d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/index.html @@ -0,0 +1,73 @@ + + + + + + +Luaj API + + + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Buffer.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Buffer.html new file mode 100644 index 000000000..8569264a2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Buffer.html @@ -0,0 +1,602 @@ + + + + + + +Buffer (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Buffer

+
+java.lang.Object
+  extended by org.luaj.vm2.Buffer
+
+
+
+
public final class Buffer
extends java.lang.Object
+ + +

+String buffer for use in string library methods, optimized for production + of StrValue instances. +

+ The buffer can begin initially as a wrapped LuaValue + and only when concatenation actually occurs are the bytes first copied. +

+ To convert back to a LuaValue again, + the function value() is used. +

+ +

+

+
See Also:
LuaValue, +LuaValue.buffer(), +LuaString
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
Buffer() + +
+          Create buffer with default capacity
Buffer(int initialCapacity) + +
+          Create buffer with specified initial capacity
Buffer(LuaValue value) + +
+          Create buffer with specified initial value
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ Bufferappend(byte b) + +
+          Append a single byte to the buffer.
+ Bufferappend(LuaString str) + +
+          Append a LuaString to the buffer.
+ Bufferappend(LuaValue val) + +
+          Append a LuaValue to the buffer.
+ Bufferappend(java.lang.String str) + +
+          Append a Java String to the buffer.
+ BufferconcatTo(LuaNumber lhs) + +
+          Concatenate this buffer onto a LuaNumber
+ BufferconcatTo(LuaString lhs) + +
+          Concatenate this buffer onto a LuaString
+ BufferconcatTo(LuaValue lhs) + +
+          Concatenate this buffer onto a LuaValue
+ voidmakeroom(int nbefore, + int nafter) + +
+          Ensure there is enough room before and after the bytes.
+ Bufferprepend(LuaString s) + +
+          Concatenate bytes from a LuaString onto the front of this buffer
+ Buffersetvalue(LuaValue value) + +
+          Set buffer contents as a LuaValue
+ java.lang.Stringtojstring() + +
+          Convert the buffer to a Java String
+ LuaStringtostring() + +
+          Convert the buffer to a LuaString
+ java.lang.StringtoString() + +
+          Convert the buffer to a Java String
+ LuaValuevalue() + +
+          Get buffer contents as a LuaValue
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Buffer

+
+public Buffer()
+
+
Create buffer with default capacity +

+

+
See Also:
DEFAULT_CAPACITY
+
+
+ +

+Buffer

+
+public Buffer(int initialCapacity)
+
+
Create buffer with specified initial capacity +

+

+
Parameters:
initialCapacity - the initial capacity
+
+
+ +

+Buffer

+
+public Buffer(LuaValue value)
+
+
Create buffer with specified initial value +

+

+
Parameters:
value - the initial value
+
+ + + + + + + + +
+Method Detail
+ +

+value

+
+public LuaValue value()
+
+
Get buffer contents as a LuaValue +

+

+ +
Returns:
value as a LuaValue, converting as necessary
+
+
+
+ +

+setvalue

+
+public Buffer setvalue(LuaValue value)
+
+
Set buffer contents as a LuaValue +

+

+
Parameters:
value - value to set
+
+
+
+ +

+tostring

+
+public final LuaString tostring()
+
+
Convert the buffer to a LuaString +

+

+ +
Returns:
the value as a LuaString
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Convert the buffer to a Java String +

+

+ +
Returns:
the value as a Java String
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Convert the buffer to a Java String +

+

+
Overrides:
toString in class java.lang.Object
+
+
+ +
Returns:
the value as a Java String
+
+
+
+ +

+append

+
+public final Buffer append(byte b)
+
+
Append a single byte to the buffer. +

+

+ +
Returns:
this to allow call chaining
+
+
+
+ +

+append

+
+public final Buffer append(LuaValue val)
+
+
Append a LuaValue to the buffer. +

+

+ +
Returns:
this to allow call chaining
+
+
+
+ +

+append

+
+public final Buffer append(LuaString str)
+
+
Append a LuaString to the buffer. +

+

+ +
Returns:
this to allow call chaining
+
+
+
+ +

+append

+
+public final Buffer append(java.lang.String str)
+
+
Append a Java String to the buffer. + The Java string will be converted to bytes using the UTF8 encoding. +

+

+ +
Returns:
this to allow call chaining
See Also:
LuaString.encodeToUtf8(char[], int, byte[], int)
+
+
+
+ +

+concatTo

+
+public Buffer concatTo(LuaValue lhs)
+
+
Concatenate this buffer onto a LuaValue +

+

+
Parameters:
lhs - the left-hand-side value onto which we are concatenating this +
Returns:
Buffer for use in call chaining.
+
+
+
+ +

+concatTo

+
+public Buffer concatTo(LuaString lhs)
+
+
Concatenate this buffer onto a LuaString +

+

+
Parameters:
lhs - the left-hand-side value onto which we are concatenating this +
Returns:
Buffer for use in call chaining.
+
+
+
+ +

+concatTo

+
+public Buffer concatTo(LuaNumber lhs)
+
+
Concatenate this buffer onto a LuaNumber +

+ The LuaNumber will be converted to a string before concatenating. +

+

+
Parameters:
lhs - the left-hand-side value onto which we are concatenating this +
Returns:
Buffer for use in call chaining.
+
+
+
+ +

+prepend

+
+public Buffer prepend(LuaString s)
+
+
Concatenate bytes from a LuaString onto the front of this buffer +

+

+
Parameters:
s - the left-hand-side value which we will concatenate onto the front of this +
Returns:
Buffer for use in call chaining.
+
+
+
+ +

+makeroom

+
+public final void makeroom(int nbefore,
+                           int nafter)
+
+
Ensure there is enough room before and after the bytes. +

+

+
Parameters:
nbefore - number of unused bytes which must precede the data after this completes
nafter - number of unused bytes which must follow the data after this completes
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Compiler.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Compiler.html new file mode 100644 index 000000000..35849b83f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Compiler.html @@ -0,0 +1,223 @@ + + + + + + +Globals.Compiler (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Interface Globals.Compiler

+
+
All Known Implementing Classes:
LuaC
+
+
+
Enclosing class:
Globals
+
+
+
+
public static interface Globals.Compiler
+ + +

+Interface for module that converts lua source text into a prototype. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ Prototypecompile(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source into a Prototype.
+  +

+ + + + + + + + +
+Method Detail
+ +

+compile

+
+Prototype compile(java.io.InputStream stream,
+                  java.lang.String chunkname)
+                  throws java.io.IOException
+
+
Compile lua source into a Prototype. The InputStream is assumed to be in UTF-8. +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Loader.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Loader.html new file mode 100644 index 000000000..90dbf3058 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Loader.html @@ -0,0 +1,225 @@ + + + + + + +Globals.Loader (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Interface Globals.Loader

+
+
All Known Implementing Classes:
LuaC, LuaJC
+
+
+
Enclosing class:
Globals
+
+
+
+
public static interface Globals.Loader
+ + +

+Interface for module that converts a Prototype into a LuaFunction with an environment. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ LuaFunctionload(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+  +

+ + + + + + + + +
+Method Detail
+ +

+load

+
+LuaFunction load(Prototype prototype,
+                 java.lang.String chunkname,
+                 LuaValue env)
+                 throws java.io.IOException
+
+
Convert the prototype into a LuaFunction with the supplied environment. +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Undumper.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Undumper.html new file mode 100644 index 000000000..f3523a196 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.Undumper.html @@ -0,0 +1,220 @@ + + + + + + +Globals.Undumper (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Interface Globals.Undumper

+
+
Enclosing class:
Globals
+
+
+
+
public static interface Globals.Undumper
+ + +

+Interface for module that loads lua binary chunk into a prototype. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ Prototypeundump(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Load the supplied input stream into a prototype.
+  +

+ + + + + + + + +
+Method Detail
+ +

+undump

+
+Prototype undump(java.io.InputStream stream,
+                 java.lang.String chunkname)
+                 throws java.io.IOException
+
+
Load the supplied input stream into a prototype. +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.html new file mode 100644 index 000000000..47721346f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Globals.html @@ -0,0 +1,952 @@ + + + + + + +Globals (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Globals

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaTable
+              extended by org.luaj.vm2.Globals
+
+
+
+
public class Globals
extends LuaTable
+ + +

+Global environment used by luaj. Contains global variables referenced by executing lua. +

+ +

Constructing and Initializing Instances

+ Typically, this is constructed indirectly by a call to + JsePlatform.standardGlobals() or + JmePlatform.standardGlobals(), + and then used to load lua scripts for execution as in the following example. +
 Globals globals = JsePlatform.standardGlobals();
+ globals.load( new StringReader("print 'hello'"), "main.lua" ).call(); 
+  
+ The creates a complete global environment with the standard libraries loaded. +

+ For specialized circumstances, the Globals may be constructed directly and loaded + with only those libraries that are needed, for example. +

 Globals globals = new Globals();
+ globals.load( new BaseLib() ); 
+  
+ +

Loading and Executing Lua Code

+ Globals contains convenience functions to load and execute lua source code given a Reader. + A simple example is: +
 globals.load( new StringReader("print 'hello'"), "main.lua" ).call(); 
+  
+ +

Fine-Grained Control of Compiling and Loading Lua

+ Executable LuaFunctions are created from lua code in several steps + +

+ There are alternate flows when the direct lua-to-Java bytecode compiling LuaJC is used. +

    +
  • compile lua to lua bytecode using Compiler or load precompiled code using Globals.Undumper +
  • convert lua bytecode to equivalent Java bytecode using LuaJC that implements Globals.Loader directly +
+ +

Java Field

+ Certain public fields are provided that contain the current values of important global state: + + +

Lua Environment Variables

+ When using JsePlatform or JmePlatform, + these environment variables are created within the Globals. +
    +
  • "_G" Pointer to this Globals. +
  • "_VERSION" String containing the version of luaj. +
+ +

Use in Multithreaded Environments

+ In a multi-threaded server environment, each server thread should create one Globals instance, + which will be logically distinct and not interfere with each other, but share certain + static immutable resources such as class data and string data. +

+

+ +

+

+
See Also:
JsePlatform, +JmePlatform, +LuaValue, +Compiler, +Globals.Loader, +Globals.Undumper, +ResourceFinder, +LuaC, +LuaJC
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Nested Class Summary
+static interfaceGlobals.Compiler + +
+          Interface for module that converts lua source text into a prototype.
+static interfaceGlobals.Loader + +
+          Interface for module that converts a Prototype into a LuaFunction with an environment.
+static interfaceGlobals.Undumper + +
+          Interface for module that loads lua binary chunk into a prototype.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ BaseLibbaselib + +
+          The BaseLib instance loaded into this Globals
+ Globals.Compilercompiler + +
+          The installed compiler.
+ DebugLibdebuglib + +
+          The DebugLib instance loaded into this Globals, or null if debugging is not enabled
+ ResourceFinderfinder + +
+          The installed ResourceFinder for looking files by name.
+ Globals.Loaderloader + +
+          The installed loader.
+ PackageLibpackage_ + +
+          The PackageLib instance loaded into this Globals
+ LuaThreadrunning + +
+          The currently running thread.
+ java.io.PrintStreamSTDERR + +
+          The current default error stream.
+ java.io.InputStreamSTDIN + +
+          The current default input stream.
+ java.io.PrintStreamSTDOUT + +
+          The current default output stream.
+ Globals.Undumperundumper + +
+          The installed undumper.
+ + + + + + + +
Fields inherited from class org.luaj.vm2.LuaTable
array, hash, hashEntries, m_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
Globals() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ Globalscheckglobals() + +
+          Check that this object is a Globals object, and return it, otherwise throw an error.
+ PrototypecompilePrototype(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source from an InputStream into a Prototype.
+ PrototypecompilePrototype(java.io.Reader reader, + java.lang.String chunkname) + +
+          Compile lua source from a Reader into a Prototype.
+ LuaValueload(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue environment) + +
+          Load the content form an input stream as a binary chunk or text file.
+ LuaValueload(java.io.Reader reader, + java.lang.String chunkname) + +
+          Load the content form a reader as a text file.
+ LuaValueload(java.io.Reader reader, + java.lang.String chunkname, + LuaTable environment) + +
+          Load the content form a reader as a text file, supplying a custom environment.
+ LuaValueload(java.lang.String script) + +
+          Convenience function to load a string value as a script.
+ LuaValueload(java.lang.String script, + java.lang.String chunkname) + +
+          Convenience function to load a string value as a script.
+ LuaValueload(java.lang.String script, + java.lang.String chunkname, + LuaTable environment) + +
+          Convenience function to load a string value as a script with a custom environment.
+ LuaValueloadfile(java.lang.String filename) + +
+          Convenience function for loading a file that is either binary lua or lua source.
+ PrototypeloadPrototype(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode) + +
+          Load lua source or lua binary from an input stream into a Prototype.
+ Varargsyield(Varargs args) + +
+          Function which yields the current thread.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaTable
arrayget, checktable, concat, defaultEntry, entry, eq_b, eq, get, get, getArrayLength, getHashLength, getmetatable, hashget, hashmod, hashpow2, hashset, hashSlot, inext, insert, isLargeKey, istable, keyCount, keys, len, length, next, opttable, presize, presize, rawget, rawget, rawlen, rawset, rawset, remove, set, set, setmetatable, sort, toLuaValue, type, typename, unpack, unpack, unpack, useWeakKeys, useWeakValues, wrap
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eqmtcall, equals, error, get, gettable, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, illegal, initupvalue1, invoke, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnil, isnumber, isstring, isthread, isuserdata, isuserdata, isvalidkey, lenerror, 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, not, onInvoke, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, raweq, raweq, raweq, raweq, raweq, rawget, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, settable, strcmp, strcmp, strongvalue, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+STDIN

+
+public java.io.InputStream STDIN
+
+
The current default input stream. +

+

+
+
+
+ +

+STDOUT

+
+public java.io.PrintStream STDOUT
+
+
The current default output stream. +

+

+
+
+
+ +

+STDERR

+
+public java.io.PrintStream STDERR
+
+
The current default error stream. +

+

+
+
+
+ +

+finder

+
+public ResourceFinder finder
+
+
The installed ResourceFinder for looking files by name. +

+

+
+
+
+ +

+running

+
+public LuaThread running
+
+
The currently running thread. Should not be changed by non-library code. +

+

+
+
+
+ +

+baselib

+
+public BaseLib baselib
+
+
The BaseLib instance loaded into this Globals +

+

+
+
+
+ +

+package_

+
+public PackageLib package_
+
+
The PackageLib instance loaded into this Globals +

+

+
+
+
+ +

+debuglib

+
+public DebugLib debuglib
+
+
The DebugLib instance loaded into this Globals, or null if debugging is not enabled +

+

+
+
+
+ +

+loader

+
+public Globals.Loader loader
+
+
The installed loader. +

+

+
See Also:
Globals.Loader
+
+
+ +

+compiler

+
+public Globals.Compiler compiler
+
+
The installed compiler. +

+

+
See Also:
Compiler
+
+
+ +

+undumper

+
+public Globals.Undumper undumper
+
+
The installed undumper. +

+

+
See Also:
Globals.Undumper
+
+ + + + + + + + +
+Constructor Detail
+ +

+Globals

+
+public Globals()
+
+
+ + + + + + + + +
+Method Detail
+ +

+checkglobals

+
+public Globals checkglobals()
+
+
Check that this object is a Globals object, and return it, otherwise throw an error. +

+

+
Overrides:
checkglobals in class LuaValue
+
+
+ +
Returns:
this if if an instance fof Globals
+
+
+
+ +

+loadfile

+
+public LuaValue loadfile(java.lang.String filename)
+
+
Convenience function for loading a file that is either binary lua or lua source. +

+

+
Parameters:
filename - Name of the file to load. +
Returns:
LuaValue that can be call()'ed or invoke()'ed. +
Throws: +
LuaError - if the file could not be loaded.
+
+
+
+ +

+load

+
+public LuaValue load(java.lang.String script,
+                     java.lang.String chunkname)
+
+
Convenience function to load a string value as a script. Must be lua source. +

+

+
Parameters:
script - Contents of a lua script, such as "print 'hello, world.'"
chunkname - Name that will be used within the chunk as the source. +
Returns:
LuaValue that may be executed via .call(), .invoke(), or .method() calls. +
Throws: +
LuaError - if the script could not be compiled.
+
+
+
+ +

+load

+
+public LuaValue load(java.lang.String script)
+
+
Convenience function to load a string value as a script. Must be lua source. +

+

+
Parameters:
script - Contents of a lua script, such as "print 'hello, world.'" +
Returns:
LuaValue that may be executed via .call(), .invoke(), or .method() calls. +
Throws: +
LuaError - if the script could not be compiled.
+
+
+
+ +

+load

+
+public LuaValue load(java.lang.String script,
+                     java.lang.String chunkname,
+                     LuaTable environment)
+
+
Convenience function to load a string value as a script with a custom environment. + Must be lua source. +

+

+
Parameters:
script - Contents of a lua script, such as "print 'hello, world.'"
chunkname - Name that will be used within the chunk as the source.
environment - LuaTable to be used as the environment for the loaded function. +
Returns:
LuaValue that may be executed via .call(), .invoke(), or .method() calls. +
Throws: +
LuaError - if the script could not be compiled.
+
+
+
+ +

+load

+
+public LuaValue load(java.io.Reader reader,
+                     java.lang.String chunkname)
+
+
Load the content form a reader as a text file. Must be lua source. + The source is converted to UTF-8, so any characters appearing in quoted literals + above the range 128 will be converted into multiple bytes. +

+

+
Parameters:
reader - Reader containing text of a lua script, such as "print 'hello, world.'"
chunkname - Name that will be used within the chunk as the source. +
Returns:
LuaValue that may be executed via .call(), .invoke(), or .method() calls. +
Throws: +
LuaError - if the script could not be compiled.
+
+
+
+ +

+load

+
+public LuaValue load(java.io.Reader reader,
+                     java.lang.String chunkname,
+                     LuaTable environment)
+
+
Load the content form a reader as a text file, supplying a custom environment. + Must be lua source. The source is converted to UTF-8, so any characters + appearing in quoted literals above the range 128 will be converted into + multiple bytes. +

+

+
Parameters:
reader - Reader containing text of a lua script, such as "print 'hello, world.'"
chunkname - Name that will be used within the chunk as the source.
environment - LuaTable to be used as the environment for the loaded function. +
Returns:
LuaValue that may be executed via .call(), .invoke(), or .method() calls. +
Throws: +
LuaError - if the script could not be compiled.
+
+
+
+ +

+load

+
+public LuaValue load(java.io.InputStream is,
+                     java.lang.String chunkname,
+                     java.lang.String mode,
+                     LuaValue environment)
+
+
Load the content form an input stream as a binary chunk or text file. +

+

+
Parameters:
is - InputStream containing a lua script or compiled lua"
chunkname - Name that will be used within the chunk as the source.
mode - String containing 'b' or 't' or both to control loading as binary or text or either.
environment - LuaTable to be used as the environment for the loaded function.
+
+
+
+ +

+loadPrototype

+
+public Prototype loadPrototype(java.io.InputStream is,
+                               java.lang.String chunkname,
+                               java.lang.String mode)
+                        throws java.io.IOException
+
+
Load lua source or lua binary from an input stream into a Prototype. + The InputStream is either a binary lua chunk starting with the lua binary chunk signature, + or a text input file. If it is a text input file, it is interpreted as a UTF-8 byte sequence. +

+

+
Parameters:
is - Input stream containing a lua script or compiled lua"
chunkname - Name that will be used within the chunk as the source.
mode - String containing 'b' or 't' or both to control loading as binary or text or either. +
Throws: +
java.io.IOException
+
+
+
+ +

+compilePrototype

+
+public Prototype compilePrototype(java.io.Reader reader,
+                                  java.lang.String chunkname)
+                           throws java.io.IOException
+
+
Compile lua source from a Reader into a Prototype. The characters in the reader + are converted to bytes using the UTF-8 encoding, so a string literal containing + characters with codepoints 128 or above will be converted into multiple bytes. +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+compilePrototype

+
+public Prototype compilePrototype(java.io.InputStream stream,
+                                  java.lang.String chunkname)
+                           throws java.io.IOException
+
+
Compile lua source from an InputStream into a Prototype. + The input is assumed to be UTf-8, but since bytes in the range 128-255 are passed along as + literal bytes, any ASCII-compatible encoding such as ISO 8859-1 may also be used. +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+yield

+
+public Varargs yield(Varargs args)
+
+
Function which yields the current thread. +

+

+
Parameters:
args - Arguments to supply as return values in the resume function of the resuming thread. +
Returns:
Values supplied as arguments to the resume() call that reactivates this thread.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LoadState.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LoadState.html new file mode 100644 index 000000000..183f2882c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LoadState.html @@ -0,0 +1,871 @@ + + + + + + +LoadState (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LoadState

+
+java.lang.Object
+  extended by org.luaj.vm2.LoadState
+
+
+
+
public class LoadState
extends java.lang.Object
+ + +

+Class to undump compiled lua bytecode into a Prototype instances. +

+ The LoadState class provides the default Globals.Undumper + which is used to undump a string of bytes that represent a lua binary file + using either the C-based lua compiler, or luaj's + LuaC compiler. +

+ The canonical method to load and execute code is done + indirectly using the Globals: +

 Globals globals = JsePlatform.standardGlobals();
+ LuaValue chunk = globasl.load("print('hello, world')", "main.lua");
+ chunk.call();
+  
+ This should work regardless of which Globals.Compiler or Globals.Undumper + have been installed. +

+ By default, when using JsePlatform or + JmePlatform + to construct globals, the LoadState default undumper is installed + as the default Globals.Undumper. +

+ + A lua binary file is created via the org.luaj.vm2.compiler.DumpState class +: +

 Globals globals = JsePlatform.standardGlobals();
+ Prototype p = globals.compilePrototype(new StringReader("print('hello, world')"), "main.lua");
+ ByteArrayOutputStream o = new ByteArrayOutputStream();
+ org.luaj.vm2.compiler.DumpState.dump(p, o, false);
+ byte[] lua_binary_file_bytes = o.toByteArray();
+  
+ + The LoadState's default undumper instance + may be used directly to undump these bytes: +
 Prototypep = LoadState.instance.undump(new ByteArrayInputStream(lua_binary_file_bytes), "main.lua");
+ LuaClosure c = new LuaClosure(p, globals);
+ c.call();
+  
+ + + More commonly, the Globals.Undumper may be used to undump them: +
 Prototype p = globals.loadPrototype(new ByteArrayInputStream(lua_binary_file_bytes), "main.lua", "b");
+ LuaClosure c = new LuaClosure(p, globals);
+ c.call();
+  
+

+ +

+

+
See Also:
Globals.Compiler, +Globals.Undumper, +LuaClosure, +LuaFunction, +LuaC, +LuaJC, +Globals.compiler, +Globals#load(InputStream, String, LuaValue)
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.Stringencoding + +
+          The character encoding to use for file encoding.
+static Globals.Undumperinstance + +
+          Shared instance of Globals.Undumper to use loading prototypes from binary lua files
+ java.io.DataInputStreamis + +
+          input stream from which we are loading
+static byte[]LUA_SIGNATURE + +
+          Signature byte indicating the file is a compiled binary chunk
+static intLUA_TBOOLEAN + +
+           
+static intLUA_TFUNCTION + +
+           
+static intLUA_TINT + +
+           
+static intLUA_TLIGHTUSERDATA + +
+           
+static intLUA_TNIL + +
+           
+static intLUA_TNONE + +
+           
+static intLUA_TNUMBER + +
+           
+static intLUA_TSTRING + +
+           
+static intLUA_TTABLE + +
+           
+static intLUA_TTHREAD + +
+           
+static intLUA_TUSERDATA + +
+           
+static intLUA_TVALUE + +
+           
+static intLUAC_FORMAT + +
+          for header of binary files -- this is the official format
+static intLUAC_HEADERSIZE + +
+          size of header of binary files
+static byte[]LUAC_TAIL + +
+          Data to catch conversion errors
+static intLUAC_VERSION + +
+          for header of binary files -- this is Lua 5.2
+static intNUMBER_FORMAT_FLOATS_OR_DOUBLES + +
+          format corresponding to non-number-patched lua, all numbers are floats or doubles
+static intNUMBER_FORMAT_INTS_ONLY + +
+          format corresponding to non-number-patched lua, all numbers are ints
+static intNUMBER_FORMAT_NUM_PATCH_INT32 + +
+          format corresponding to number-patched lua, all numbers are 32-bit (4 byte) ints
+static java.lang.StringSOURCE_BINARY_STRING + +
+          Name for compiled chunks
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.StringgetSourceName(java.lang.String name) + +
+          Construct a source name from a supplied chunk name
+static voidinstall(Globals globals) + +
+          Install this class as the standard Globals.Undumper for the supplied Globals
+ PrototypeloadFunction(LuaString p) + +
+          Load a function prototype from the input stream
+ voidloadHeader() + +
+          Load the lua chunk header values.
+static LuaValuelongBitsToLuaNumber(long bits) + +
+          Convert bits in a long value to a LuaValue.
+static Prototypeundump(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Load input stream as a lua binary chunk if the first 4 bytes are the lua binary signature.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+instance

+
+public static final Globals.Undumper instance
+
+
Shared instance of Globals.Undumper to use loading prototypes from binary lua files +

+

+
+
+
+ +

+NUMBER_FORMAT_FLOATS_OR_DOUBLES

+
+public static final int NUMBER_FORMAT_FLOATS_OR_DOUBLES
+
+
format corresponding to non-number-patched lua, all numbers are floats or doubles +

+

+
See Also:
Constant Field Values
+
+
+ +

+NUMBER_FORMAT_INTS_ONLY

+
+public static final int NUMBER_FORMAT_INTS_ONLY
+
+
format corresponding to non-number-patched lua, all numbers are ints +

+

+
See Also:
Constant Field Values
+
+
+ +

+NUMBER_FORMAT_NUM_PATCH_INT32

+
+public static final int NUMBER_FORMAT_NUM_PATCH_INT32
+
+
format corresponding to number-patched lua, all numbers are 32-bit (4 byte) ints +

+

+
See Also:
Constant Field Values
+
+
+ +

+LUA_TINT

+
+public static final int LUA_TINT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TNONE

+
+public static final int LUA_TNONE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TNIL

+
+public static final int LUA_TNIL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TBOOLEAN

+
+public static final int LUA_TBOOLEAN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TLIGHTUSERDATA

+
+public static final int LUA_TLIGHTUSERDATA
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TNUMBER

+
+public static final int LUA_TNUMBER
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TSTRING

+
+public static final int LUA_TSTRING
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TTABLE

+
+public static final int LUA_TTABLE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TFUNCTION

+
+public static final int LUA_TFUNCTION
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TUSERDATA

+
+public static final int LUA_TUSERDATA
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TTHREAD

+
+public static final int LUA_TTHREAD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+LUA_TVALUE

+
+public static final int LUA_TVALUE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+encoding

+
+public static java.lang.String encoding
+
+
The character encoding to use for file encoding. Null means the default encoding +

+

+
+
+
+ +

+LUA_SIGNATURE

+
+public static final byte[] LUA_SIGNATURE
+
+
Signature byte indicating the file is a compiled binary chunk +

+

+
+
+
+ +

+LUAC_TAIL

+
+public static final byte[] LUAC_TAIL
+
+
Data to catch conversion errors +

+

+
+
+
+ +

+SOURCE_BINARY_STRING

+
+public static final java.lang.String SOURCE_BINARY_STRING
+
+
Name for compiled chunks +

+

+
See Also:
Constant Field Values
+
+
+ +

+LUAC_VERSION

+
+public static final int LUAC_VERSION
+
+
for header of binary files -- this is Lua 5.2 +

+

+
See Also:
Constant Field Values
+
+
+ +

+LUAC_FORMAT

+
+public static final int LUAC_FORMAT
+
+
for header of binary files -- this is the official format +

+

+
See Also:
Constant Field Values
+
+
+ +

+LUAC_HEADERSIZE

+
+public static final int LUAC_HEADERSIZE
+
+
size of header of binary files +

+

+
See Also:
Constant Field Values
+
+
+ +

+is

+
+public final java.io.DataInputStream is
+
+
input stream from which we are loading +

+

+
+
+ + + + + + + + +
+Method Detail
+ +

+install

+
+public static void install(Globals globals)
+
+
Install this class as the standard Globals.Undumper for the supplied Globals +

+

+
+
+
+
+ +

+longBitsToLuaNumber

+
+public static LuaValue longBitsToLuaNumber(long bits)
+
+
Convert bits in a long value to a LuaValue. +

+

+
Parameters:
bits - long value containing the bits +
Returns:
LuaInteger or LuaDouble whose value corresponds to the bits provided.
+
+
+
+ +

+loadFunction

+
+public Prototype loadFunction(LuaString p)
+                       throws java.io.IOException
+
+
Load a function prototype from the input stream +

+

+
Parameters:
p - name of the source +
Returns:
Prototype instance that was loaded +
Throws: +
java.io.IOException
+
+
+
+ +

+loadHeader

+
+public void loadHeader()
+                throws java.io.IOException
+
+
Load the lua chunk header values. +

+

+ +
Throws: +
java.io.IOException - if an i/o exception occurs.
+
+
+
+ +

+undump

+
+public static Prototype undump(java.io.InputStream stream,
+                               java.lang.String chunkname)
+                        throws java.io.IOException
+
+
Load input stream as a lua binary chunk if the first 4 bytes are the lua binary signature. +

+

+
Parameters:
stream - InputStream to read, after having read the first byte already
chunkname - Name to apply to the loaded chunk +
Returns:
Prototype that was loaded, or null if the first 4 bytes were not the lua signature. +
Throws: +
java.io.IOException - if an IOException occurs
+
+
+
+ +

+getSourceName

+
+public static java.lang.String getSourceName(java.lang.String name)
+
+
Construct a source name from a supplied chunk name +

+

+
Parameters:
name - String name that appears in the chunk +
Returns:
source file name
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LocVars.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LocVars.html new file mode 100644 index 000000000..45a893ac8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LocVars.html @@ -0,0 +1,342 @@ + + + + + + +LocVars (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LocVars

+
+java.lang.Object
+  extended by org.luaj.vm2.LocVars
+
+
+
+
public class LocVars
extends java.lang.Object
+ + +

+Data class to hold debug information relating to local variables for a Prototype +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + +
+Field Summary
+ intendpc + +
+          The instruction offset when the variable goes out of scope
+ intstartpc + +
+          The instruction offset when the variable comes into scope
+ LuaStringvarname + +
+          The local variable name
+  + + + + + + + + + + +
+Constructor Summary
LocVars(LuaString varname, + int startpc, + int endpc) + +
+          Construct a LocVars instance.
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Stringtojstring() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+varname

+
+public LuaString varname
+
+
The local variable name +

+

+
+
+
+ +

+startpc

+
+public int startpc
+
+
The instruction offset when the variable comes into scope +

+

+
+
+
+ +

+endpc

+
+public int endpc
+
+
The instruction offset when the variable goes out of scope +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LocVars

+
+public LocVars(LuaString varname,
+               int startpc,
+               int endpc)
+
+
Construct a LocVars instance. +

+

+
Parameters:
varname - The local variable name
startpc - The instruction offset when the variable comes into scope
endpc - The instruction offset when the variable goes out of scope
+
+ + + + + + + + +
+Method Detail
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Lua.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Lua.html new file mode 100644 index 000000000..111791e07 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Lua.html @@ -0,0 +1,2199 @@ + + + + + + +Lua (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Lua

+
+java.lang.Object
+  extended by org.luaj.vm2.Lua
+
+
+
Direct Known Subclasses:
Print
+
+
+
+
public class Lua
extends java.lang.Object
+ + +

+Constants for lua limits and opcodes. +

+ This is a direct translation of C lua distribution header file constants + for bytecode creation and processing. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.String_VERSION + +
+          version is supplied by ant build task
+static intBITRK + +
+          this bit 1 means constant (0 means register)
+static intiABC + +
+           
+static intiABx + +
+           
+static intiAsBx + +
+           
+static intiAx + +
+           
+static intLFIELDS_PER_FLUSH + +
+           
+static intLUA_MULTRET + +
+          use return values from previous op
+static int[]luaP_opmodes + +
+           
+static intMASK_A + +
+           
+static intMASK_B + +
+           
+static intMASK_Bx + +
+           
+static intMASK_C + +
+           
+static intMASK_NOT_A + +
+           
+static intMASK_NOT_B + +
+           
+static intMASK_NOT_Bx + +
+           
+static intMASK_NOT_C + +
+           
+static intMASK_NOT_OP + +
+           
+static intMASK_OP + +
+           
+static intMAX_OP + +
+           
+static intMAXARG_A + +
+           
+static intMAXARG_Ax + +
+           
+static intMAXARG_B + +
+           
+static intMAXARG_Bx + +
+           
+static intMAXARG_C + +
+           
+static intMAXARG_sBx + +
+           
+static intMAXINDEXRK + +
+           
+static intNO_REG + +
+          invalid register that fits in 8 bits
+static intNUM_OPCODES + +
+           
+static intOP_ADD + +
+           
+static intOP_AND + +
+           
+static intOP_CALL + +
+           
+static intOP_CLOSURE + +
+           
+static intOP_CONCAT + +
+           
+static intOP_DIV + +
+           
+static intOP_EQ + +
+           
+static intOP_EXTRAARG + +
+           
+static intOP_FORLOOP + +
+           
+static intOP_FORPREP + +
+           
+static intOP_GE + +
+           
+static intOP_GETTABLE + +
+           
+static intOP_GETTABUP + +
+           
+static intOP_GETUPVAL + +
+           
+static intOP_GT + +
+           
+static intOP_JMP + +
+           
+static intOP_LE + +
+           
+static intOP_LEN + +
+           
+static intOP_LOADBOOL + +
+           
+static intOP_LOADK + +
+           
+static intOP_LOADKX + +
+           
+static intOP_LOADNIL + +
+           
+static intOP_LT + +
+           
+static intOP_MOD + +
+           
+static intOP_MOVE + +
+           
+static intOP_MUL + +
+           
+static intOP_NEQ + +
+           
+static intOP_NEWTABLE + +
+           
+static intOP_NOT + +
+           
+static intOP_OR + +
+           
+static intOP_POW + +
+           
+static intOP_RETURN + +
+           
+static intOP_SELF + +
+           
+static intOP_SETLIST + +
+           
+static intOP_SETTABLE + +
+           
+static intOP_SETTABUP + +
+           
+static intOP_SETUPVAL + +
+           
+static intOP_SUB + +
+           
+static intOP_TAILCALL + +
+           
+static intOP_TEST + +
+           
+static intOP_TESTSET + +
+           
+static intOP_TFORCALL + +
+           
+static intOP_TFORLOOP + +
+           
+static intOP_UNM + +
+           
+static intOP_VARARG + +
+           
+static intOpArgK + +
+           
+static intOpArgN + +
+           
+static intOpArgR + +
+           
+static intOpArgU + +
+           
+static intPOS_A + +
+           
+static intPOS_Ax + +
+           
+static intPOS_B + +
+           
+static intPOS_Bx + +
+           
+static intPOS_C + +
+           
+static intPOS_OP + +
+           
+static intSIZE_A + +
+           
+static intSIZE_Ax + +
+           
+static intSIZE_B + +
+           
+static intSIZE_Bx + +
+           
+static intSIZE_C + +
+           
+static intSIZE_OP + +
+           
+  + + + + + + + + + + +
+Constructor Summary
Lua() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.Stringchunkid(java.lang.String source) + +
+           
+static intGET_OPCODE(int i) + +
+           
+static intGETARG_A(int i) + +
+           
+static intGETARG_Ax(int i) + +
+           
+static intGETARG_B(int i) + +
+           
+static intGETARG_Bx(int i) + +
+           
+static intGETARG_C(int i) + +
+           
+static intGETARG_sBx(int i) + +
+           
+static intgetBMode(int m) + +
+           
+static intgetCMode(int m) + +
+           
+static intgetOpMode(int m) + +
+           
+static intINDEXK(int r) + +
+          gets the index of the constant
+static booleanISK(int x) + +
+          test whether value is a constant
+static intRKASK(int x) + +
+          code a constant index as a RK value
+static booleantestAMode(int m) + +
+           
+static booleantestTMode(int m) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+_VERSION

+
+public static final java.lang.String _VERSION
+
+
version is supplied by ant build task +

+

+
See Also:
Constant Field Values
+
+
+ +

+LUA_MULTRET

+
+public static final int LUA_MULTRET
+
+
use return values from previous op +

+

+
See Also:
Constant Field Values
+
+
+ +

+iABC

+
+public static final int iABC
+
+
+
See Also:
Constant Field Values
+
+
+ +

+iABx

+
+public static final int iABx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+iAsBx

+
+public static final int iAsBx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+iAx

+
+public static final int iAx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_C

+
+public static final int SIZE_C
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_B

+
+public static final int SIZE_B
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_Bx

+
+public static final int SIZE_Bx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_A

+
+public static final int SIZE_A
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_Ax

+
+public static final int SIZE_Ax
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SIZE_OP

+
+public static final int SIZE_OP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_OP

+
+public static final int POS_OP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_A

+
+public static final int POS_A
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_C

+
+public static final int POS_C
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_B

+
+public static final int POS_B
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_Bx

+
+public static final int POS_Bx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+POS_Ax

+
+public static final int POS_Ax
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAX_OP

+
+public static final int MAX_OP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_A

+
+public static final int MAXARG_A
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_B

+
+public static final int MAXARG_B
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_C

+
+public static final int MAXARG_C
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_Bx

+
+public static final int MAXARG_Bx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_sBx

+
+public static final int MAXARG_sBx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MAXARG_Ax

+
+public static final int MAXARG_Ax
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_OP

+
+public static final int MASK_OP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_A

+
+public static final int MASK_A
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_B

+
+public static final int MASK_B
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_C

+
+public static final int MASK_C
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_Bx

+
+public static final int MASK_Bx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_NOT_OP

+
+public static final int MASK_NOT_OP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_NOT_A

+
+public static final int MASK_NOT_A
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_NOT_B

+
+public static final int MASK_NOT_B
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_NOT_C

+
+public static final int MASK_NOT_C
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MASK_NOT_Bx

+
+public static final int MASK_NOT_Bx
+
+
+
See Also:
Constant Field Values
+
+
+ +

+BITRK

+
+public static final int BITRK
+
+
this bit 1 means constant (0 means register) +

+

+
See Also:
Constant Field Values
+
+
+ +

+MAXINDEXRK

+
+public static final int MAXINDEXRK
+
+
+
See Also:
Constant Field Values
+
+
+ +

+NO_REG

+
+public static final int NO_REG
+
+
invalid register that fits in 8 bits +

+

+
See Also:
Constant Field Values
+
+
+ +

+OP_MOVE

+
+public static final int OP_MOVE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LOADK

+
+public static final int OP_LOADK
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LOADKX

+
+public static final int OP_LOADKX
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LOADBOOL

+
+public static final int OP_LOADBOOL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LOADNIL

+
+public static final int OP_LOADNIL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_GETUPVAL

+
+public static final int OP_GETUPVAL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_GETTABUP

+
+public static final int OP_GETTABUP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_GETTABLE

+
+public static final int OP_GETTABLE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SETTABUP

+
+public static final int OP_SETTABUP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SETUPVAL

+
+public static final int OP_SETUPVAL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SETTABLE

+
+public static final int OP_SETTABLE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_NEWTABLE

+
+public static final int OP_NEWTABLE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SELF

+
+public static final int OP_SELF
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_ADD

+
+public static final int OP_ADD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SUB

+
+public static final int OP_SUB
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_MUL

+
+public static final int OP_MUL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_DIV

+
+public static final int OP_DIV
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_MOD

+
+public static final int OP_MOD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_POW

+
+public static final int OP_POW
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_UNM

+
+public static final int OP_UNM
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_NOT

+
+public static final int OP_NOT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LEN

+
+public static final int OP_LEN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_CONCAT

+
+public static final int OP_CONCAT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_JMP

+
+public static final int OP_JMP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_EQ

+
+public static final int OP_EQ
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LT

+
+public static final int OP_LT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_LE

+
+public static final int OP_LE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_TEST

+
+public static final int OP_TEST
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_TESTSET

+
+public static final int OP_TESTSET
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_CALL

+
+public static final int OP_CALL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_TAILCALL

+
+public static final int OP_TAILCALL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_RETURN

+
+public static final int OP_RETURN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_FORLOOP

+
+public static final int OP_FORLOOP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_FORPREP

+
+public static final int OP_FORPREP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_TFORCALL

+
+public static final int OP_TFORCALL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_TFORLOOP

+
+public static final int OP_TFORLOOP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_SETLIST

+
+public static final int OP_SETLIST
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_CLOSURE

+
+public static final int OP_CLOSURE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_VARARG

+
+public static final int OP_VARARG
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_EXTRAARG

+
+public static final int OP_EXTRAARG
+
+
+
See Also:
Constant Field Values
+
+
+ +

+NUM_OPCODES

+
+public static final int NUM_OPCODES
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_GT

+
+public static final int OP_GT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_GE

+
+public static final int OP_GE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_NEQ

+
+public static final int OP_NEQ
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_AND

+
+public static final int OP_AND
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OP_OR

+
+public static final int OP_OR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OpArgN

+
+public static final int OpArgN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OpArgU

+
+public static final int OpArgU
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OpArgR

+
+public static final int OpArgR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OpArgK

+
+public static final int OpArgK
+
+
+
See Also:
Constant Field Values
+
+
+ +

+luaP_opmodes

+
+public static final int[] luaP_opmodes
+
+
+
+
+
+ +

+LFIELDS_PER_FLUSH

+
+public static final int LFIELDS_PER_FLUSH
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+Lua

+
+public Lua()
+
+
+ + + + + + + + +
+Method Detail
+ +

+GET_OPCODE

+
+public static int GET_OPCODE(int i)
+
+
+
+
+
+
+ +

+GETARG_A

+
+public static int GETARG_A(int i)
+
+
+
+
+
+
+ +

+GETARG_Ax

+
+public static int GETARG_Ax(int i)
+
+
+
+
+
+
+ +

+GETARG_B

+
+public static int GETARG_B(int i)
+
+
+
+
+
+
+ +

+GETARG_C

+
+public static int GETARG_C(int i)
+
+
+
+
+
+
+ +

+GETARG_Bx

+
+public static int GETARG_Bx(int i)
+
+
+
+
+
+
+ +

+GETARG_sBx

+
+public static int GETARG_sBx(int i)
+
+
+
+
+
+
+ +

+ISK

+
+public static boolean ISK(int x)
+
+
test whether value is a constant +

+

+
+
+
+
+ +

+INDEXK

+
+public static int INDEXK(int r)
+
+
gets the index of the constant +

+

+
+
+
+
+ +

+RKASK

+
+public static int RKASK(int x)
+
+
code a constant index as a RK value +

+

+
+
+
+
+ +

+getOpMode

+
+public static int getOpMode(int m)
+
+
+
+
+
+
+ +

+getBMode

+
+public static int getBMode(int m)
+
+
+
+
+
+
+ +

+getCMode

+
+public static int getCMode(int m)
+
+
+
+
+
+
+ +

+testAMode

+
+public static boolean testAMode(int m)
+
+
+
+
+
+
+ +

+testTMode

+
+public static boolean testTMode(int m)
+
+
+
+
+
+
+ +

+chunkid

+
+public static java.lang.String chunkid(java.lang.String source)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaBoolean.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaBoolean.html new file mode 100644 index 000000000..e97e84d3b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaBoolean.html @@ -0,0 +1,601 @@ + + + + + + +LuaBoolean (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaBoolean

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaBoolean
+
+
+
+
public final class LuaBoolean
extends LuaValue
+ + +

+Extension of LuaValue which can hold a Java boolean as its value. +

+ These instance are not instantiated directly by clients. + Instead, there are exactly twon instances of this class, + LuaValue.TRUE and LuaValue.FALSE + representing the lua values true and false. + The function LuaValue.valueOf(boolean) will always + return one of these two values. +

+ Any LuaValue can be converted to its equivalent + boolean representation using LuaValue.toboolean() +

+

+ +

+

+
See Also:
LuaValue, +LuaValue.valueOf(boolean), +LuaValue.TRUE, +LuaValue.FALSE
+
+ +

+ + + + + + + + + + + + + + + +
+Field Summary
+static LuaValues_metatable + +
+          Shared static metatable for boolean values represented in lua.
+ booleanv + +
+          The value of the boolean
+ + + + + + + +
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
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanbooleanValue() + +
+          Return the boolean value for this boolean
+ booleancheckboolean() + +
+          Check that the value is a LuaBoolean, + or throw LuaError if not
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ booleanisboolean() + +
+          Check if this is a boolean
+ LuaValuenot() + +
+          Unary not: return inverse boolean value (~this) as defined by lua not operator
+ booleanoptboolean(boolean defval) + +
+          Check that optional argument is a boolean and return its boolean value
+ booleantoboolean() + +
+          Convert to boolean false if LuaValue.NIL or LuaValue.FALSE, true if anything else
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkclosure, checkdouble, checkfunction, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isclosure, isfunction, 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, onInvoke, optclosure, optdouble, optfunction, 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, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
Shared static metatable for boolean values represented in lua. +

+

+
+
+
+ +

+v

+
+public final boolean v
+
+
The value of the boolean +

+

+
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+isboolean

+
+public boolean isboolean()
+
+
Description copied from class: LuaValue
+
Check if this is a boolean +

+

+
Overrides:
isboolean in class LuaValue
+
+
+ +
Returns:
true if this is a boolean, otherwise false
See Also:
LuaValue.isboolean(), +LuaValue.toboolean(), +LuaValue.checkboolean(), +LuaValue.optboolean(boolean), +LuaValue.TBOOLEAN
+
+
+
+ +

+not

+
+public LuaValue not()
+
+
Description copied from class: LuaValue
+
Unary not: return inverse boolean value (~this) as defined by lua not operator +

+

+
Overrides:
not in class LuaValue
+
+
+ +
Returns:
LuaValue.TRUE if LuaValue.NIL or LuaValue.FALSE, otherwise LuaValue.FALSE
+
+
+
+ +

+booleanValue

+
+public boolean booleanValue()
+
+
Return the boolean value for this boolean +

+

+ +
Returns:
value as a Java boolean
+
+
+
+ +

+toboolean

+
+public boolean toboolean()
+
+
Description copied from class: LuaValue
+
Convert to boolean false if LuaValue.NIL or LuaValue.FALSE, true if anything else +

+

+
Overrides:
toboolean in class LuaValue
+
+
+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
LuaValue.optboolean(boolean), +LuaValue.checkboolean(), +LuaValue.isboolean(), +LuaValue.TBOOLEAN
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+optboolean

+
+public boolean optboolean(boolean defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a boolean and return its boolean value +

+

+
Overrides:
optboolean in class LuaValue
+
+
+
Parameters:
defval - boolean value to return if this is nil or none +
Returns:
this cast to boolean if a LuaBoolean, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkboolean(), +LuaValue.isboolean(), +LuaValue.TBOOLEAN
+
+
+
+ +

+checkboolean

+
+public boolean checkboolean()
+
+
Description copied from class: LuaValue
+
Check that the value is a LuaBoolean, + or throw LuaError if not +

+

+
Overrides:
checkboolean in class LuaValue
+
+
+ +
Returns:
boolean value for this if it is a LuaBoolean
See Also:
LuaValue.optboolean(boolean), +LuaValue.TBOOLEAN
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaClosure.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaClosure.html new file mode 100644 index 000000000..9e2fd4636 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaClosure.html @@ -0,0 +1,897 @@ + + + + + + +LuaClosure (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaClosure

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.LuaClosure
+
+
+
+
public class LuaClosure
extends LuaFunction
+ + +

+Extension of LuaFunction which executes lua bytecode. +

+ A LuaClosure is a combination of a Prototype + and a LuaValue to use as an environment for execution. + Normally the LuaValue is a Globals in which case the environment + will contain standard lua libraries. + +

+ There are three main ways LuaClosure instances are created: +

+

+ To construct it directly, the Prototype is typically created via a compiler such as + LuaC: +

 String script = "print( 'hello, world' )";
+ InputStream is = new ByteArrayInputStream(script.getBytes());
+ Prototype p = LuaC.instance.compile(is, "script");
+ LuaValue globals = JsePlatform.standardGlobals();
+ LuaClosure f = new LuaClosure(p, globals);
+ f.call();
+ 
+

+ To construct it indirectly, the Globals.load(java.io.Reader, String) method may be used: +

 Globals globals = JsePlatform.standardGlobals();
+ LuaFunction f = globals.load(new StringReader(script), "script");
+ LuaClosure c = f.checkclosure();  // This may fail if LuaJC is installed.
+ c.call();
+ 
+

+ In this example, the "checkclosure()" may fail if direct lua-to-java-bytecode + compiling using LuaJC is installed, because no LuaClosure is created in that case + and the value returned is a LuaFunction but not a LuaClosure. +

+ Since a LuaClosure is a LuaFunction which is a LuaValue, + all the value operations can be used directly such as: +

+

+ +

+

+
See Also:
LuaValue, +LuaFunction, +LuaValue.isclosure(), +LuaValue.checkclosure(), +LuaValue.optclosure(LuaClosure), +LoadState, +Globals.compiler
+
+ +

+ + + + + + + + + + + + + + + +
+Field Summary
+ Prototypep + +
+           
+ UpValue[]upValues + +
+           
+ + + + + + + +
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
LuaClosure(Prototype p, + LuaValue env) + +
+          Create a closure around a Prototype with a specific environment.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ LuaClosurecheckclosure() + +
+          Check that the value is a LuaClosure , + or throw LuaError if not
+protected  Varargsexecute(LuaValue[] stack, + Varargs varargs) + +
+           
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+protected  LuaValuegetUpvalue(int i) + +
+           
+ Varargsinvoke(Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ booleanisclosure() + +
+          Check if this is a function that is a closure, + meaning interprets lua bytecode for its execution
+ java.lang.Stringname() + +
+          Return a human-readable name for this function.
+ VarargsonInvoke(Varargs varargs) + +
+          Callback used during tail call processing to invoke the function once.
+ LuaClosureoptclosure(LuaClosure defval) + +
+          Check that optional argument is a closure and return as LuaClosure
+protected  voidsetUpvalue(int i, + LuaValue v) + +
+           
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaFunction
checkfunction, classnamestub, isfunction, 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, 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, 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, optboolean, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+p

+
+public final Prototype p
+
+
+
+
+
+ +

+upValues

+
+public UpValue[] upValues
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaClosure

+
+public LuaClosure(Prototype p,
+                  LuaValue env)
+
+
Create a closure around a Prototype with a specific environment. + If the prototype has upvalues, the environment will be written into the first upvalue. +

+

+
Parameters:
p - the Prototype to construct this Closure for.
env - the environment to associate with the closure.
+
+ + + + + + + + +
+Method Detail
+ +

+isclosure

+
+public boolean isclosure()
+
+
Description copied from class: LuaValue
+
Check if this is a function that is a closure, + meaning interprets lua bytecode for its execution +

+

+
Overrides:
isclosure in class LuaValue
+
+
+ +
Returns:
true if this is a closure, otherwise false
See Also:
LuaValue.isfunction(), +LuaValue.checkclosure(), +LuaValue.optclosure(LuaClosure), +LuaValue.TFUNCTION
+
+
+
+ +

+optclosure

+
+public LuaClosure optclosure(LuaClosure defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a closure and return as LuaClosure +

+ A LuaClosure is a LuaFunction that executes lua byteccode. +

+

+
Overrides:
optclosure in class LuaValue
+
+
+
Parameters:
defval - LuaClosure to return if this is nil or none +
Returns:
this cast to LuaClosure if a function, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkclosure(), +LuaValue.isclosure(), +LuaValue.TFUNCTION
+
+
+
+ +

+checkclosure

+
+public LuaClosure checkclosure()
+
+
Description copied from class: LuaValue
+
Check that the value is a LuaClosure , + or throw LuaError if not +

+ LuaClosure is a subclass of LuaFunction that interprets lua bytecode. +

+

+
Overrides:
checkclosure in class LuaValue
+
+
+ +
Returns:
this cast as LuaClosure
See Also:
LuaValue.checkfunction(), +LuaValue.optclosure(LuaClosure), +LuaValue.isclosure(), +LuaValue.TFUNCTION
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaFunction
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaFunction
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+call

+
+public final 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 LuaValue
+
+
+ +
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 final 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 LuaValue
+
+
+
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 final 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 LuaValue
+
+
+
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 final 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 LuaValue
+
+
+
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 final 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 LuaValue
+
+
+
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)
+
+
+
+ +

+onInvoke

+
+public final Varargs onInvoke(Varargs varargs)
+
+
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. +

+

+
Overrides:
onInvoke in class LuaValue
+
+
+
Parameters:
varargs - the arguments to the call invocation. +
Returns:
Varargs the return values, possible a TailcallVarargs.
See Also:
LuaValue.call(), +LuaValue.invoke(), +LuaValue.method(LuaValue), +LuaValue.invokemethod(LuaValue)
+
+
+
+ +

+execute

+
+protected Varargs execute(LuaValue[] stack,
+                          Varargs varargs)
+
+
+
+
+
+
+ +

+getUpvalue

+
+protected LuaValue getUpvalue(int i)
+
+
+
+
+
+
+ +

+setUpvalue

+
+protected void setUpvalue(int i,
+                          LuaValue v)
+
+
+
+
+
+
+ +

+name

+
+public java.lang.String name()
+
+
Description copied from class: LuaFunction
+
Return a human-readable name for this function. Returns the last part of the class name by default. + Is overridden by LuaClosure to return the source file and line, and by LibFunctions to return the name. +

+

+
Overrides:
name in class LuaFunction
+
+
+ +
Returns:
common name for this function.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaDouble.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaDouble.html new file mode 100644 index 000000000..845d9bccf --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaDouble.html @@ -0,0 +1,3314 @@ + + + + + + +LuaDouble (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaDouble

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaNumber
+              extended by org.luaj.vm2.LuaDouble
+
+
+
+
public class LuaDouble
extends LuaNumber
+ + +

+Extension of LuaNumber which can hold a Java double as its value. +

+ These instance are not instantiated directly by clients, but indirectly + via the static functions LuaValue.valueOf(int) or LuaValue.valueOf(double) + functions. This ensures that values which can be represented as int + are wrapped in LuaInteger instead of LuaDouble. +

+ Almost all API's implemented in LuaDouble are defined and documented in LuaValue. +

+ However the constants NAN, POSINF, NEGINF, + JSTR_NAN, JSTR_POSINF, and JSTR_NEGINF may be useful + when dealing with Nan or Infinite values. +

+ LuaDouble also defines functions for handling the unique math rules of lua devision and modulo in +

+

+

+ +

+

+
See Also:
LuaValue, +LuaNumber, +LuaInteger, +LuaValue.valueOf(int), +LuaValue.valueOf(double)
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringJSTR_NAN + +
+          Constant String representation for NaN (not a number), "nan"
+static java.lang.StringJSTR_NEGINF + +
+          Constant String representation for negative infinity, "-inf"
+static java.lang.StringJSTR_POSINF + +
+          Constant String representation for positive infinity, "inf"
+static LuaDoubleNAN + +
+          Constant LuaDouble representing NaN (not a number)
+static LuaDoubleNEGINF + +
+          Constant LuaDouble representing negative infinity
+static LuaDoublePOSINF + +
+          Constant LuaDouble representing positive infinity
+ + + + + + + +
Fields inherited from class org.luaj.vm2.LuaNumber
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
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValueadd(double lhs) + +
+          Add: Perform numeric add operation with another value + of double type with metatag processing
+ LuaValueadd(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ doublecheckdouble() + +
+          Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric
+ intcheckint() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ LuaIntegercheckinteger() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ java.lang.Stringcheckjstring() + +
+          Convert this value to a Java String.
+ longchecklong() + +
+          Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric
+ LuaNumberchecknumber() + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaStringcheckstring() + +
+          Check that this is a lua string, or throw LuaError if it is not.
+static doubleddiv_d(double lhs, + double rhs) + +
+          Divide two double numbers according to lua math, and return a double result.
+static LuaValueddiv(double lhs, + double rhs) + +
+          Divide two double numbers according to lua math, and return a LuaValue result.
+ LuaValuediv(double rhs) + +
+          Divide: Perform numeric divide operation by another value + of double type without metatag processing
+ LuaValuediv(int rhs) + +
+          Divide: Perform numeric divide operation by another value + of int type without metatag processing
+ LuaValuediv(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ LuaValuedivInto(double lhs) + +
+          Reverse-divide: Perform numeric divide operation into another value + with metatag processing
+static doubledmod_d(double lhs, + double rhs) + +
+          Take modulo for double numbers according to lua math, and return a double result.
+static LuaValuedmod(double lhs, + double rhs) + +
+          Take modulo double numbers according to lua math, and return a LuaValue result.
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ.
+ booleanequals(java.lang.Object o) + +
+           
+ booleangt_b(double rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleangt_b(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangt_b(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegt(double rhs) + +
+          Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleangteq_b(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegteq(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ inthashCode() + +
+           
+ booleanislong() + +
+          Check if this is a number and is representable by java long + without rounding or truncation
+ booleanisnumber() + +
+          Check if this is a number
+ booleanisstring() + +
+          Check if this is a string
+ booleanisvalidkey() + +
+          Return true if this is a valid key in a table index operation.
+ booleanlt_b(double rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleanlt_b(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlt_b(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelt(double rhs) + +
+          Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanlteq_b(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelteq(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ LuaValuemod(double rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of double type without metatag processing
+ LuaValuemod(int rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of int type without metatag processing
+ LuaValuemod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValuemodFrom(double lhs) + +
+          Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing
+ LuaValuemul(double lhs) + +
+          Multiply: Perform numeric multiply operation with another value + of double type with metatag processing
+ LuaValuemul(int lhs) + +
+          Multiply: Perform numeric multiply operation with another value + of int type with metatag processing
+ LuaValuemul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ LuaValueneg() + +
+          Unary minus: return negative value (-this) as defined by lua unary minus operator
+ doubleoptdouble(double defval) + +
+          Check that optional argument is a number or string convertible to number and return as double
+ intoptint(int defval) + +
+          Check that optional argument is a number or string convertible to number and return as int
+ LuaIntegeroptinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+ java.lang.Stringoptjstring(java.lang.String defval) + +
+          Check that optional argument is a string or number and return as Java String
+ longoptlong(long defval) + +
+          Check that optional argument is a number or string convertible to number and return as long
+ LuaNumberoptnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+ LuaStringoptstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaValuepow(double rhs) + +
+          Raise to power: Raise this value to a power + of double type with metatag processing
+ LuaValuepow(int rhs) + +
+          Raise to power: Raise this value to a power + of int type with metatag processing
+ LuaValuepow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+ LuaValuepowWith(double lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValuepowWith(int lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ booleanraweq(double val) + +
+          Equals: Perform direct equality comparison with a double value + without metatag processing.
+ booleanraweq(int val) + +
+          Equals: Perform direct equality comparison with a int value + without metatag processing.
+ booleanraweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ intstrcmp(LuaString rhs) + +
+          Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values.
+ LuaStringstrvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ LuaValuesub(double rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of double type with metatag processing
+ LuaValuesub(int rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of int type with metatag processing
+ LuaValuesub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+ LuaValuesubFrom(double lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing
+ bytetobyte() + +
+          Convert to byte if numeric, or 0 if not.
+ chartochar() + +
+          Convert to char if numeric, or 0 if not.
+ doubletodouble() + +
+          Convert to double if numeric, or 0 if not.
+ floattofloat() + +
+          Convert to float if numeric, or 0 if not.
+ inttoint() + +
+          Convert to int if numeric, or 0 if not.
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ longtolong() + +
+          Convert to long if numeric, or 0 if not.
+ LuaValuetonumber() + +
+          Conditionally convert to lua number without throwing errors.
+ shorttoshort() + +
+          Convert to short if numeric, or 0 if not.
+ LuaValuetostring() + +
+          Conditionally convert to lua string without throwing errors.
+static LuaNumbervalueOf(double d) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaNumber
checknumber, concat, concat, concatTo, concatTo, getmetatable, type, typename
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkfunction, checkglobals, checkmetatag, checknotnil, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concatmt, concatTo, eqmtcall, error, get, get, get, gettable, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, isnil, istable, isthread, isuserdata, isuserdata, len, lenerror, length, listOf, listOf, load, metatableOf, metatag, method, method, method, method, method, method, narg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optfunction, opttable, optthread, optuserdata, optuserdata, optvalue, or, presize, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strcmp, strongvalue, subargs, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, 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, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+NAN

+
+public static final LuaDouble NAN
+
+
Constant LuaDouble representing NaN (not a number) +

+

+
+
+
+ +

+POSINF

+
+public static final LuaDouble POSINF
+
+
Constant LuaDouble representing positive infinity +

+

+
+
+
+ +

+NEGINF

+
+public static final LuaDouble NEGINF
+
+
Constant LuaDouble representing negative infinity +

+

+
+
+
+ +

+JSTR_NAN

+
+public static final java.lang.String JSTR_NAN
+
+
Constant String representation for NaN (not a number), "nan" +

+

+
See Also:
Constant Field Values
+
+
+ +

+JSTR_POSINF

+
+public static final java.lang.String JSTR_POSINF
+
+
Constant String representation for positive infinity, "inf" +

+

+
See Also:
Constant Field Values
+
+
+ +

+JSTR_NEGINF

+
+public static final java.lang.String JSTR_NEGINF
+
+
Constant String representation for negative infinity, "-inf" +

+

+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Method Detail
+ +

+valueOf

+
+public static LuaNumber valueOf(double d)
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+
+ +

+islong

+
+public boolean islong()
+
+
Description copied from class: LuaValue
+
Check if this is a number and is representable by java long + without rounding or truncation +

+

+
Overrides:
islong in class LuaValue
+
+
+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by long, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checklong(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+tobyte

+
+public byte tobyte()
+
+
Description copied from class: LuaValue
+
Convert to byte if numeric, or 0 if not. +

+

+
Overrides:
tobyte in class LuaValue
+
+
+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tochar

+
+public char tochar()
+
+
Description copied from class: LuaValue
+
Convert to char if numeric, or 0 if not. +

+

+
Overrides:
tochar in class LuaValue
+
+
+ +
Returns:
Value cast to char if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+todouble

+
+public double todouble()
+
+
Description copied from class: LuaValue
+
Convert to double if numeric, or 0 if not. +

+

+
Overrides:
todouble in class LuaValue
+
+
+ +
Returns:
Value cast to double if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.optdouble(double), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tofloat

+
+public float tofloat()
+
+
Description copied from class: LuaValue
+
Convert to float if numeric, or 0 if not. +

+

+
Overrides:
tofloat in class LuaValue
+
+
+ +
Returns:
Value cast to float if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toint

+
+public int toint()
+
+
Description copied from class: LuaValue
+
Convert to int if numeric, or 0 if not. +

+

+
Overrides:
toint in class LuaValue
+
+
+ +
Returns:
Value cast to int if number or string convertible to number, otherwise 0
See Also:
LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.todouble(), +LuaValue.optint(int), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tolong

+
+public long tolong()
+
+
Description copied from class: LuaValue
+
Convert to long if numeric, or 0 if not. +

+

+
Overrides:
tolong in class LuaValue
+
+
+ +
Returns:
Value cast to long if number or string convertible to number, otherwise 0
See Also:
LuaValue.isint(), +LuaValue.isinttype(), +LuaValue.toint(), +LuaValue.todouble(), +LuaValue.optlong(long), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toshort

+
+public short toshort()
+
+
Description copied from class: LuaValue
+
Convert to short if numeric, or 0 if not. +

+

+
Overrides:
toshort in class LuaValue
+
+
+ +
Returns:
Value cast to short if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optdouble

+
+public double optdouble(double defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as double +

+

+
Overrides:
optdouble in class LuaValue
+
+
+
Parameters:
defval - double to return if this is nil or none +
Returns:
this cast to double if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optint(int), +LuaValue.optinteger(LuaInteger), +LuaValue.checkdouble(), +LuaValue.todouble(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optint

+
+public int optint(int defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as int +

+

+
Overrides:
optint in class LuaValue
+
+
+
Parameters:
defval - int to return if this is nil or none +
Returns:
this cast to int if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optinteger(LuaInteger), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(LuaInteger defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaInteger +

+

+
Overrides:
optinteger in class LuaValue
+
+
+
Parameters:
defval - LuaInteger to return if this is nil or none +
Returns:
this converted and wrapped in LuaInteger if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optlong

+
+public long optlong(long defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as long +

+

+
Overrides:
optlong in class LuaValue
+
+
+
Parameters:
defval - long to return if this is nil or none +
Returns:
this cast to long if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+checkinteger

+
+public LuaInteger checkinteger()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkinteger in class LuaValue
+
+
+ +
Returns:
value cast to a int and wrapped in LuaInteger if numeric
See Also:
LuaValue.checkint(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optinteger(LuaInteger), +LuaValue.TNUMBER
+
+
+
+ +

+neg

+
+public LuaValue neg()
+
+
Description copied from class: LuaValue
+
Unary minus: return negative value (-this) as defined by lua unary minus operator +

+

+
Overrides:
neg in class LuaValue
+
+
+ +
Returns:
boolean inverse as LuaBoolean if boolean or nil, + numeric inverse as LuaNumber if numeric, + or metatag processing result if LuaValue.UNM metatag is defined
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
+
Overrides:
equals in class LuaValue
+
+
+
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +

+

+
Overrides:
eq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
LuaValue.TRUE if values are comparable and (this == rhs), + LuaValue.FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
LuaValue.eq_b(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +

+

+
Overrides:
eq_b in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq_b(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with another value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if (this == rhs), false otherwise
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaUserdata), +LuaValue.raweq(LuaString), +LuaValue.raweq(double), +LuaValue.raweq(int), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(double val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a double value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+raweq

+
+public boolean raweq(int val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a int value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+add

+
+public LuaValue add(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(double lhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric
See Also:
LuaValue.add(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(double rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(int rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
subFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric
See Also:
LuaValue.sub(LuaValue), +LuaValue.sub(double), +LuaValue.sub(int)
+
+
+
+ +

+mul

+
+public LuaValue mul(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(double lhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(int lhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(double rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(int rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(int lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+div

+
+public LuaValue div(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(double rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(int rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+divInto

+
+public LuaValue divInto(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-divide: Perform numeric divide operation into another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
divInto in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be divided by this +
Returns:
value of (lhs / this) if this is numeric
See Also:
LuaValue.div(LuaValue), +LuaValue.div(double), +LuaValue.div(int)
+
+
+
+ +

+mod

+
+public LuaValue mod(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(double rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(int rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+modFrom

+
+public LuaValue modFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
modFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be modulo'ed by this +
Returns:
value of (lhs % this) if this is numeric
See Also:
LuaValue.mod(LuaValue), +LuaValue.mod(double), +LuaValue.mod(int)
+
+
+
+ +

+ddiv

+
+public static LuaValue ddiv(double lhs,
+                            double rhs)
+
+
Divide two double numbers according to lua math, and return a LuaValue result. +

+

+
Parameters:
lhs - Left-hand-side of the division.
rhs - Right-hand-side of the division. +
Returns:
LuaValue for the result of the division, + taking into account positive and negiative infinity, and Nan
See Also:
ddiv_d(double, double)
+
+
+
+ +

+ddiv_d

+
+public static double ddiv_d(double lhs,
+                            double rhs)
+
+
Divide two double numbers according to lua math, and return a double result. +

+

+
Parameters:
lhs - Left-hand-side of the division.
rhs - Right-hand-side of the division. +
Returns:
Value of the division, taking into account positive and negative infinity, and Nan
See Also:
ddiv(double, double)
+
+
+
+ +

+dmod

+
+public static LuaValue dmod(double lhs,
+                            double rhs)
+
+
Take modulo double numbers according to lua math, and return a LuaValue result. +

+

+
Parameters:
lhs - Left-hand-side of the modulo.
rhs - Right-hand-side of the modulo. +
Returns:
LuaValue for the result of the modulo, + using lua's rules for modulo
See Also:
dmod_d(double, double)
+
+
+
+ +

+dmod_d

+
+public static double dmod_d(double lhs,
+                            double rhs)
+
+
Take modulo for double numbers according to lua math, and return a double result. +

+

+
Parameters:
lhs - Left-hand-side of the modulo.
rhs - Right-hand-side of the modulo. +
Returns:
double value for the result of the modulo, + using lua's rules for modulo
See Also:
dmod(double, double)
+
+
+
+ +

+lt

+
+public LuaValue lt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(double rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(int rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(double rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(int rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaString rhs)
+
+
Description copied from class: LuaValue
+
Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Overrides:
strcmp in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string.
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+strvalue

+
+public LuaString strvalue()
+
+
Description copied from class: LuaValue
+
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +

+

+
Overrides:
strvalue in class LuaValue
+
+
+ +
Returns:
LuaString corresponding to the value if a string or number
+
+
+
+ +

+optstring

+
+public LuaString optstring(LuaString defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as LuaString +

+

+
Overrides:
optstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to LuaString if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optjstring(String), +LuaValue.checkstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+tostring

+
+public LuaValue tostring()
+
+
Description copied from class: LuaValue
+
Conditionally convert to lua string without throwing errors. +

+ In lua all numbers are strings, so this function will return + the LuaValue this if it is a string or number, + and LuaValue.NIL for all other cases. +

+ This allows values to be tested for their "string-ness" without + the penalty of throwing exceptions. +

+

+
Overrides:
tostring in class LuaValue
+
+
+ +
Returns:
this if it is a LuaString or LuaNumber, + otherwise LuaValue.NIL
See Also:
LuaValue.tonumber(), +LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkstring(), +LuaValue.toString()
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(java.lang.String defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as Java String +

+

+
Overrides:
optjstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to String if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkjstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(LuaNumber defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaNumber +

+

+
Overrides:
optnumber in class LuaNumber
+
+
+
Parameters:
defval - LuaNumber to return if this is nil or none +
Returns:
this cast to LuaNumber if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+isnumber

+
+public boolean isnumber()
+
+
Description copied from class: LuaValue
+
Check if this is a number +

+

+
Overrides:
isnumber in class LuaNumber
+
+
+ +
Returns:
true if this is a number, + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checknumber(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+isstring

+
+public boolean isstring()
+
+
Description copied from class: LuaValue
+
Check if this is a string +

+

+
Overrides:
isstring in class LuaNumber
+
+
+ +
Returns:
true if this is a string, + meaning derives from LuaString or LuaNumber, + otherwise false
See Also:
LuaValue.tostring(), +LuaValue.checkstring(), +LuaValue.optstring(LuaString), +LuaValue.TSTRING
+
+
+
+ +

+tonumber

+
+public LuaValue tonumber()
+
+
Description copied from class: LuaValue
+
Conditionally convert to lua number without throwing errors. +

+ In lua all numbers are strings, but not all strings are numbers. + This function will return + the LuaValue this if it is a number + or a string convertible to a number, + and LuaValue.NIL for all other cases. +

+ This allows values to be tested for their "numeric-ness" without + the penalty of throwing exceptions, + nor the cost of converting the type and creating storage for it. +

+

+
Overrides:
tonumber in class LuaNumber
+
+
+ +
Returns:
this if it is a LuaNumber + or LuaString that can be converted to a number, + otherwise LuaValue.NIL
See Also:
LuaValue.tostring(), +LuaValue.optnumber(LuaNumber), +LuaValue.checknumber(), +LuaValue.toint(), +LuaValue.todouble()
+
+
+
+ +

+checkint

+
+public int checkint()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkint in class LuaValue
+
+
+ +
Returns:
value cast to a int if numeric
See Also:
LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optint(int), +LuaValue.TNUMBER
+
+
+
+ +

+checklong

+
+public long checklong()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to long and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to long, so may also lose precision. +

+

+
Overrides:
checklong in class LuaValue
+
+
+ +
Returns:
value cast to a long if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Overrides:
checknumber in class LuaNumber
+
+
+ +
Returns:
value as a LuaNumber if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.checklong(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+checkdouble

+
+public double checkdouble()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric +

+ Values that are LuaNumber and values that are LuaString + that can be converted to a number will be converted to double. +

+

+
Overrides:
checkdouble in class LuaValue
+
+
+ +
Returns:
value cast to a double if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.optdouble(double), +LuaValue.TNUMBER
+
+
+
+ +

+checkjstring

+
+public java.lang.String checkjstring()
+
+
Description copied from class: LuaValue
+
Convert this value to a Java String. +

+ The string representations here will roughly match what is produced by the + C lua distribution, however hash codes have no relationship, + and there may be differences in number formatting. +

+

+
Overrides:
checkjstring in class LuaValue
+
+
+ +
Returns:
String representation of the value
See Also:
LuaValue.checkstring(), +LuaValue.optjstring(String), +LuaValue.tojstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+checkstring

+
+public LuaString checkstring()
+
+
Description copied from class: LuaValue
+
Check that this is a lua string, or throw LuaError if it is not. +

+ In lua all numbers are strings, so this will succeed for + anything that derives from LuaString or LuaNumber. + Numbers will be converted to LuaString. +

+

+
Overrides:
checkstring in class LuaValue
+
+
+ +
Returns:
LuaString representation of the value if it is a LuaString or LuaNumber
See Also:
LuaValue.checkjstring(), +LuaValue.optstring(LuaString), +LuaValue.tostring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+isvalidkey

+
+public boolean isvalidkey()
+
+
Description copied from class: LuaValue
+
Return true if this is a valid key in a table index operation. +

+

+
Overrides:
isvalidkey in class LuaValue
+
+
+ +
Returns:
true if valid as a table key, otherwise false
See Also:
LuaValue.isnil(), +LuaValue.isinttype()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaError.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaError.html new file mode 100644 index 000000000..15e6f2ec0 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaError.html @@ -0,0 +1,496 @@ + + + + + + +LuaError (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaError

+
+java.lang.Object
+  extended by java.lang.Throwable
+      extended by java.lang.Exception
+          extended by java.lang.RuntimeException
+              extended by org.luaj.vm2.LuaError
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class LuaError
extends java.lang.RuntimeException
+ + +

+RuntimeException that is thrown and caught in response to a lua error. +

+ LuaError is used wherever a lua call to error() + would be used within a script. +

+ Since it is an unchecked exception inheriting from RuntimeException, + Java method signatures do notdeclare this exception, althoug it can + be thrown on almost any luaj Java operation. + This is analagous to the fact that any lua script can throw a lua error at any time. +

+ The LuaError may be constructed with a message object, in which case the message + is the string representation of that object. getMessageObject will get the object + supplied at construct time, or a LuaString containing the message of an object + was not supplied. +

+ +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  java.lang.Throwablecause + +
+           
+protected  java.lang.Stringfileline + +
+           
+protected  intlevel + +
+           
+protected  java.lang.Stringtraceback + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
LuaError(LuaValue message_object) + +
+          Construct a LuaError with a LuaValue as the message object, + and level to draw line number information from.
LuaError(java.lang.String message) + +
+          Construct a LuaError with a specific message.
LuaError(java.lang.String message, + int level) + +
+          Construct a LuaError with a message, and level to draw line number information from.
LuaError(java.lang.Throwable cause) + +
+          Construct LuaError when a program exception occurs.
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ThrowablegetCause() + +
+          Get the cause, if any.
+ java.lang.StringgetMessage() + +
+          Get the string message if it was supplied, or a string + representation of the message object if that was supplied.
+ LuaValuegetMessageObject() + +
+          Get the LuaValue that was provided in the constructor, or + a LuaString containing the message if it was a string error argument.
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+level

+
+protected int level
+
+
+
+
+
+ +

+fileline

+
+protected java.lang.String fileline
+
+
+
+
+
+ +

+traceback

+
+protected java.lang.String traceback
+
+
+
+
+
+ +

+cause

+
+protected java.lang.Throwable cause
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaError

+
+public LuaError(java.lang.Throwable cause)
+
+
Construct LuaError when a program exception occurs. +

+ All errors generated from lua code should throw LuaError(String) instead. +

+

+
Parameters:
cause - the Throwable that caused the error, if known.
+
+
+ +

+LuaError

+
+public LuaError(java.lang.String message)
+
+
Construct a LuaError with a specific message. +

+

+
Parameters:
message - message to supply
+
+
+ +

+LuaError

+
+public LuaError(java.lang.String message,
+                int level)
+
+
Construct a LuaError with a message, and level to draw line number information from. +

+

+
Parameters:
message - message to supply
level - where to supply line info from in call stack
+
+
+ +

+LuaError

+
+public LuaError(LuaValue message_object)
+
+
Construct a LuaError with a LuaValue as the message object, + and level to draw line number information from. +

+

+
Parameters:
message_object - message string or object to supply
+
+ + + + + + + + +
+Method Detail
+ +

+getMessage

+
+public java.lang.String getMessage()
+
+
Get the string message if it was supplied, or a string + representation of the message object if that was supplied. +

+

+
Overrides:
getMessage in class java.lang.Throwable
+
+
+
+
+
+
+ +

+getMessageObject

+
+public LuaValue getMessageObject()
+
+
Get the LuaValue that was provided in the constructor, or + a LuaString containing the message if it was a string error argument. +

+

+ +
Returns:
LuaValue which was used in the constructor, or a LuaString + containing the message.
+
+
+
+ +

+getCause

+
+public java.lang.Throwable getCause()
+
+
Get the cause, if any. +

+

+
Overrides:
getCause in class java.lang.Throwable
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaFunction.html new file mode 100644 index 000000000..f918a00ce --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaFunction.html @@ -0,0 +1,611 @@ + + + + + + +LuaFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+
+
+
Direct Known Subclasses:
LibFunction, LuaClosure
+
+
+
+
public abstract class LuaFunction
extends LuaValue
+ + +

+Base class for functions implemented in Java. +

+ Direct subclass include LibFunction + which is the base class for + all built-in library functions coded in Java, + and LuaClosure, which represents a lua closure + whose bytecode is interpreted when the function is invoked. +

+ +

+

+
See Also:
LuaValue, +LuaClosure, +LibFunction
+
+ +

+ + + + + + + + + + + +
+Field Summary
+static LuaValues_metatable + +
+          Shared static metatable for all functions and closures.
+ + + + + + + +
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
LuaFunction() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaFunctioncheckfunction() + +
+          Check that the value is a function , or throw LuaError if not
+ java.lang.Stringclassnamestub() + +
+          Return the last part of the class name, to be used as a function name in tojstring and elsewhere.
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ booleanisfunction() + +
+          Check if this is a function
+ java.lang.Stringname() + +
+          Return a human-readable name for this function.
+ LuaFunctionoptfunction(LuaFunction defval) + +
+          Check that optional argument is a function and return as LuaFunction
+ LuaStringstrvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, 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, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
Shared static metatable for all functions and closures. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaFunction

+
+public LuaFunction()
+
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+isfunction

+
+public boolean isfunction()
+
+
Description copied from class: LuaValue
+
Check if this is a function +

+

+
Overrides:
isfunction in class LuaValue
+
+
+ +
Returns:
true if this is a function, otherwise false
See Also:
LuaValue.isclosure(), +LuaValue.checkfunction(), +LuaValue.optfunction(LuaFunction), +LuaValue.TFUNCTION
+
+
+
+ +

+checkfunction

+
+public LuaFunction checkfunction()
+
+
Description copied from class: LuaValue
+
Check that the value is a function , or throw LuaError if not +

+ A LuaFunction may either be a Java function that implements + functionality directly in Java, or a LuaClosure + which is a LuaFunction that executes lua bytecode. +

+

+
Overrides:
checkfunction in class LuaValue
+
+
+ +
Returns:
this if it is a lua function or closure
See Also:
LuaValue.checkclosure()
+
+
+
+ +

+optfunction

+
+public LuaFunction optfunction(LuaFunction defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a function and return as LuaFunction +

+ A LuaFunction may either be a Java function that implements + functionality directly in Java, or a LuaClosure + which is a LuaFunction that executes lua bytecode. +

+

+
Overrides:
optfunction in class LuaValue
+
+
+
Parameters:
defval - LuaFunction to return if this is nil or none +
Returns:
this cast to LuaFunction if a function, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkfunction(), +LuaValue.isfunction(), +LuaValue.TFUNCTION
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+strvalue

+
+public LuaString strvalue()
+
+
Description copied from class: LuaValue
+
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +

+

+
Overrides:
strvalue in class LuaValue
+
+
+ +
Returns:
LuaString corresponding to the value if a string or number
+
+
+
+ +

+classnamestub

+
+public java.lang.String classnamestub()
+
+
Return the last part of the class name, to be used as a function name in tojstring and elsewhere. +

+

+ +
Returns:
String naming the last part of the class name after the last dot (.) or dollar sign ($).
+
+
+
+ +

+name

+
+public java.lang.String name()
+
+
Return a human-readable name for this function. Returns the last part of the class name by default. + Is overridden by LuaClosure to return the source file and line, and by LibFunctions to return the name. +

+

+ +
Returns:
common name for this function.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaInteger.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaInteger.html new file mode 100644 index 000000000..435b0dfb5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaInteger.html @@ -0,0 +1,3111 @@ + + + + + + +LuaInteger (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaInteger

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaNumber
+              extended by org.luaj.vm2.LuaInteger
+
+
+
+
public class LuaInteger
extends LuaNumber
+ + +

+Extension of LuaNumber which can hold a Java int as its value. +

+ These instance are not instantiated directly by clients, but indirectly + via the static functions LuaValue.valueOf(int) or LuaValue.valueOf(double) + functions. This ensures that policies regarding pooling of instances are + encapsulated. +

+ There are no API's specific to LuaInteger that are useful beyond what is already + exposed in LuaValue. +

+ +

+

+
See Also:
LuaValue, +LuaNumber, +LuaDouble, +LuaValue.valueOf(int), +LuaValue.valueOf(double)
+
+ +

+ + + + + + + + + + + +
+Field Summary
+ intv + +
+          The value being held by this instance.
+ + + + + + + +
Fields inherited from class org.luaj.vm2.LuaNumber
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
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValueadd(double lhs) + +
+          Add: Perform numeric add operation with another value + of double type with metatag processing
+ LuaValueadd(int lhs) + +
+          Add: Perform numeric add operation with another value + of int type with metatag processing
+ LuaValueadd(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ doublecheckdouble() + +
+          Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric
+ intcheckint() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ LuaIntegercheckinteger() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ java.lang.Stringcheckjstring() + +
+          Convert this value to a Java String.
+ longchecklong() + +
+          Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric
+ LuaStringcheckstring() + +
+          Check that this is a lua string, or throw LuaError if it is not.
+ LuaValuediv(double rhs) + +
+          Divide: Perform numeric divide operation by another value + of double type without metatag processing
+ LuaValuediv(int rhs) + +
+          Divide: Perform numeric divide operation by another value + of int type without metatag processing
+ LuaValuediv(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ LuaValuedivInto(double lhs) + +
+          Reverse-divide: Perform numeric divide operation into another value + with metatag processing
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ.
+ booleanequals(java.lang.Object o) + +
+           
+ booleangt_b(double rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleangt_b(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangt_b(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegt(double rhs) + +
+          Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleangteq_b(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegteq(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ inthashCode() + +
+           
+static inthashCode(int x) + +
+           
+ booleanisint() + +
+          Check if this is a number and is representable by java int + without rounding or truncation
+ booleanisinttype() + +
+          Check if this is a LuaInteger
+ booleanislong() + +
+          Check if this is a number and is representable by java long + without rounding or truncation
+ booleanisstring() + +
+          Check if this is a string
+ booleanlt_b(double rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleanlt_b(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlt_b(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelt(double rhs) + +
+          Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanlteq_b(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelteq(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ LuaValuemod(double rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of double type without metatag processing
+ LuaValuemod(int rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of int type without metatag processing
+ LuaValuemod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValuemodFrom(double lhs) + +
+          Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing
+ LuaValuemul(double lhs) + +
+          Multiply: Perform numeric multiply operation with another value + of double type with metatag processing
+ LuaValuemul(int lhs) + +
+          Multiply: Perform numeric multiply operation with another value + of int type with metatag processing
+ LuaValuemul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ LuaValueneg() + +
+          Unary minus: return negative value (-this) as defined by lua unary minus operator
+ doubleoptdouble(double defval) + +
+          Check that optional argument is a number or string convertible to number and return as double
+ intoptint(int defval) + +
+          Check that optional argument is a number or string convertible to number and return as int
+ LuaIntegeroptinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+ java.lang.Stringoptjstring(java.lang.String defval) + +
+          Check that optional argument is a string or number and return as Java String
+ longoptlong(long defval) + +
+          Check that optional argument is a number or string convertible to number and return as long
+ LuaStringoptstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaValuepow(double rhs) + +
+          Raise to power: Raise this value to a power + of double type with metatag processing
+ LuaValuepow(int rhs) + +
+          Raise to power: Raise this value to a power + of int type with metatag processing
+ LuaValuepow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+ LuaValuepowWith(double lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValuepowWith(int lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ booleanraweq(double val) + +
+          Equals: Perform direct equality comparison with a double value + without metatag processing.
+ booleanraweq(int val) + +
+          Equals: Perform direct equality comparison with a int value + without metatag processing.
+ booleanraweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ intstrcmp(LuaString rhs) + +
+          Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values.
+ LuaStringstrvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ LuaValuesub(double rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of double type with metatag processing
+ LuaValuesub(int rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of int type with metatag processing
+ LuaValuesub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+ LuaValuesubFrom(double lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing
+ LuaValuesubFrom(int lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing
+ bytetobyte() + +
+          Convert to byte if numeric, or 0 if not.
+ chartochar() + +
+          Convert to char if numeric, or 0 if not.
+ doubletodouble() + +
+          Convert to double if numeric, or 0 if not.
+ floattofloat() + +
+          Convert to float if numeric, or 0 if not.
+ inttoint() + +
+          Convert to int if numeric, or 0 if not.
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ longtolong() + +
+          Convert to long if numeric, or 0 if not.
+ shorttoshort() + +
+          Convert to short if numeric, or 0 if not.
+ LuaValuetostring() + +
+          Conditionally convert to lua string without throwing errors.
+static LuaIntegervalueOf(int i) + +
+           
+static LuaNumbervalueOf(long l) + +
+          Return a LuaNumber that represents the value provided
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaNumber
checknumber, checknumber, concat, concat, concatTo, concatTo, getmetatable, isnumber, optnumber, tonumber, type, typename
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkfunction, checkglobals, checkmetatag, checknotnil, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concatmt, concatTo, eqmtcall, error, get, get, get, gettable, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isnil, istable, isthread, isuserdata, isuserdata, isvalidkey, len, lenerror, length, listOf, listOf, load, metatableOf, metatag, method, method, method, method, method, method, narg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optfunction, opttable, optthread, optuserdata, optuserdata, optvalue, or, presize, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strcmp, strongvalue, subargs, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, 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, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+v

+
+public final int v
+
+
The value being held by this instance. +

+

+
+
+ + + + + + + + +
+Method Detail
+ +

+valueOf

+
+public static LuaInteger valueOf(int i)
+
+
+
+
+
+
+ +

+valueOf

+
+public static LuaNumber valueOf(long l)
+
+
Return a LuaNumber that represents the value provided +

+

+
Parameters:
l - long value to represent. +
Returns:
LuaNumber that is eithe LuaInteger or LuaDouble representing l
See Also:
LuaValue.valueOf(int), +LuaValue.valueOf(double)
+
+
+
+ +

+isint

+
+public boolean isint()
+
+
Description copied from class: LuaValue
+
Check if this is a number and is representable by java int + without rounding or truncation +

+

+
Overrides:
isint in class LuaValue
+
+
+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by int, + otherwise false
See Also:
LuaValue.isinttype(), +LuaValue.islong(), +LuaValue.tonumber(), +LuaValue.checkint(), +LuaValue.optint(int), +LuaValue.TNUMBER
+
+
+
+ +

+isinttype

+
+public boolean isinttype()
+
+
Description copied from class: LuaValue
+
Check if this is a LuaInteger +

+ No attempt to convert from string will be made by this call. +

+

+
Overrides:
isinttype in class LuaValue
+
+
+ +
Returns:
true if this is a LuaInteger, + otherwise false
See Also:
LuaValue.isint(), +LuaValue.isnumber(), +LuaValue.tonumber(), +LuaValue.TNUMBER
+
+
+
+ +

+islong

+
+public boolean islong()
+
+
Description copied from class: LuaValue
+
Check if this is a number and is representable by java long + without rounding or truncation +

+

+
Overrides:
islong in class LuaValue
+
+
+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by long, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checklong(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+tobyte

+
+public byte tobyte()
+
+
Description copied from class: LuaValue
+
Convert to byte if numeric, or 0 if not. +

+

+
Overrides:
tobyte in class LuaValue
+
+
+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tochar

+
+public char tochar()
+
+
Description copied from class: LuaValue
+
Convert to char if numeric, or 0 if not. +

+

+
Overrides:
tochar in class LuaValue
+
+
+ +
Returns:
Value cast to char if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+todouble

+
+public double todouble()
+
+
Description copied from class: LuaValue
+
Convert to double if numeric, or 0 if not. +

+

+
Overrides:
todouble in class LuaValue
+
+
+ +
Returns:
Value cast to double if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.optdouble(double), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tofloat

+
+public float tofloat()
+
+
Description copied from class: LuaValue
+
Convert to float if numeric, or 0 if not. +

+

+
Overrides:
tofloat in class LuaValue
+
+
+ +
Returns:
Value cast to float if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toint

+
+public int toint()
+
+
Description copied from class: LuaValue
+
Convert to int if numeric, or 0 if not. +

+

+
Overrides:
toint in class LuaValue
+
+
+ +
Returns:
Value cast to int if number or string convertible to number, otherwise 0
See Also:
LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.todouble(), +LuaValue.optint(int), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tolong

+
+public long tolong()
+
+
Description copied from class: LuaValue
+
Convert to long if numeric, or 0 if not. +

+

+
Overrides:
tolong in class LuaValue
+
+
+ +
Returns:
Value cast to long if number or string convertible to number, otherwise 0
See Also:
LuaValue.isint(), +LuaValue.isinttype(), +LuaValue.toint(), +LuaValue.todouble(), +LuaValue.optlong(long), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toshort

+
+public short toshort()
+
+
Description copied from class: LuaValue
+
Convert to short if numeric, or 0 if not. +

+

+
Overrides:
toshort in class LuaValue
+
+
+ +
Returns:
Value cast to short if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optdouble

+
+public double optdouble(double defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as double +

+

+
Overrides:
optdouble in class LuaValue
+
+
+
Parameters:
defval - double to return if this is nil or none +
Returns:
this cast to double if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optint(int), +LuaValue.optinteger(LuaInteger), +LuaValue.checkdouble(), +LuaValue.todouble(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optint

+
+public int optint(int defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as int +

+

+
Overrides:
optint in class LuaValue
+
+
+
Parameters:
defval - int to return if this is nil or none +
Returns:
this cast to int if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optinteger(LuaInteger), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(LuaInteger defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaInteger +

+

+
Overrides:
optinteger in class LuaValue
+
+
+
Parameters:
defval - LuaInteger to return if this is nil or none +
Returns:
this converted and wrapped in LuaInteger if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optlong

+
+public long optlong(long defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as long +

+

+
Overrides:
optlong in class LuaValue
+
+
+
Parameters:
defval - long to return if this is nil or none +
Returns:
this cast to long if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+strvalue

+
+public LuaString strvalue()
+
+
Description copied from class: LuaValue
+
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +

+

+
Overrides:
strvalue in class LuaValue
+
+
+ +
Returns:
LuaString corresponding to the value if a string or number
+
+
+
+ +

+optstring

+
+public LuaString optstring(LuaString defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as LuaString +

+

+
Overrides:
optstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to LuaString if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optjstring(String), +LuaValue.checkstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+tostring

+
+public LuaValue tostring()
+
+
Description copied from class: LuaValue
+
Conditionally convert to lua string without throwing errors. +

+ In lua all numbers are strings, so this function will return + the LuaValue this if it is a string or number, + and LuaValue.NIL for all other cases. +

+ This allows values to be tested for their "string-ness" without + the penalty of throwing exceptions. +

+

+
Overrides:
tostring in class LuaValue
+
+
+ +
Returns:
this if it is a LuaString or LuaNumber, + otherwise LuaValue.NIL
See Also:
LuaValue.tonumber(), +LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkstring(), +LuaValue.toString()
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(java.lang.String defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as Java String +

+

+
Overrides:
optjstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to String if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkjstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+checkinteger

+
+public LuaInteger checkinteger()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkinteger in class LuaValue
+
+
+ +
Returns:
value cast to a int and wrapped in LuaInteger if numeric
See Also:
LuaValue.checkint(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optinteger(LuaInteger), +LuaValue.TNUMBER
+
+
+
+ +

+isstring

+
+public boolean isstring()
+
+
Description copied from class: LuaValue
+
Check if this is a string +

+

+
Overrides:
isstring in class LuaNumber
+
+
+ +
Returns:
true if this is a string, + meaning derives from LuaString or LuaNumber, + otherwise false
See Also:
LuaValue.tostring(), +LuaValue.checkstring(), +LuaValue.optstring(LuaString), +LuaValue.TSTRING
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public static int hashCode(int x)
+
+
+
+
+
+
+ +

+neg

+
+public LuaValue neg()
+
+
Description copied from class: LuaValue
+
Unary minus: return negative value (-this) as defined by lua unary minus operator +

+

+
Overrides:
neg in class LuaValue
+
+
+ +
Returns:
boolean inverse as LuaBoolean if boolean or nil, + numeric inverse as LuaNumber if numeric, + or metatag processing result if LuaValue.UNM metatag is defined
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
+
Overrides:
equals in class LuaValue
+
+
+
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +

+

+
Overrides:
eq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
LuaValue.TRUE if values are comparable and (this == rhs), + LuaValue.FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
LuaValue.eq_b(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +

+

+
Overrides:
eq_b in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq_b(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with another value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if (this == rhs), false otherwise
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaUserdata), +LuaValue.raweq(LuaString), +LuaValue.raweq(double), +LuaValue.raweq(int), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(double val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a double value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+raweq

+
+public boolean raweq(int val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a int value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+add

+
+public LuaValue add(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(double lhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric
See Also:
LuaValue.add(LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(int lhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric
See Also:
LuaValue.add(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(double rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(int rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
subFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric
See Also:
LuaValue.sub(LuaValue), +LuaValue.sub(double), +LuaValue.sub(int)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(int lhs)
+
+
Description copied from class: LuaValue
+
Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.sub(LuaValue) must be used +

+

+
Overrides:
subFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric
See Also:
LuaValue.sub(LuaValue), +LuaValue.sub(double), +LuaValue.sub(int)
+
+
+
+ +

+mul

+
+public LuaValue mul(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(double lhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(int lhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(double rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(int rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(int lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+div

+
+public LuaValue div(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(double rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(int rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+divInto

+
+public LuaValue divInto(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-divide: Perform numeric divide operation into another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
divInto in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be divided by this +
Returns:
value of (lhs / this) if this is numeric
See Also:
LuaValue.div(LuaValue), +LuaValue.div(double), +LuaValue.div(int)
+
+
+
+ +

+mod

+
+public LuaValue mod(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(double rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(int rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+modFrom

+
+public LuaValue modFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
modFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be modulo'ed by this +
Returns:
value of (lhs % this) if this is numeric
See Also:
LuaValue.mod(LuaValue), +LuaValue.mod(double), +LuaValue.mod(int)
+
+
+
+ +

+lt

+
+public LuaValue lt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(double rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(int rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(double rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(int rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaString rhs)
+
+
Description copied from class: LuaValue
+
Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Overrides:
strcmp in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string.
+
+
+
+ +

+checkint

+
+public int checkint()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkint in class LuaValue
+
+
+ +
Returns:
value cast to a int if numeric
See Also:
LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optint(int), +LuaValue.TNUMBER
+
+
+
+ +

+checklong

+
+public long checklong()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to long and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to long, so may also lose precision. +

+

+
Overrides:
checklong in class LuaValue
+
+
+ +
Returns:
value cast to a long if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+checkdouble

+
+public double checkdouble()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric +

+ Values that are LuaNumber and values that are LuaString + that can be converted to a number will be converted to double. +

+

+
Overrides:
checkdouble in class LuaValue
+
+
+ +
Returns:
value cast to a double if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.optdouble(double), +LuaValue.TNUMBER
+
+
+
+ +

+checkjstring

+
+public java.lang.String checkjstring()
+
+
Description copied from class: LuaValue
+
Convert this value to a Java String. +

+ The string representations here will roughly match what is produced by the + C lua distribution, however hash codes have no relationship, + and there may be differences in number formatting. +

+

+
Overrides:
checkjstring in class LuaValue
+
+
+ +
Returns:
String representation of the value
See Also:
LuaValue.checkstring(), +LuaValue.optjstring(String), +LuaValue.tojstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+checkstring

+
+public LuaString checkstring()
+
+
Description copied from class: LuaValue
+
Check that this is a lua string, or throw LuaError if it is not. +

+ In lua all numbers are strings, so this will succeed for + anything that derives from LuaString or LuaNumber. + Numbers will be converted to LuaString. +

+

+
Overrides:
checkstring in class LuaValue
+
+
+ +
Returns:
LuaString representation of the value if it is a LuaString or LuaNumber
See Also:
LuaValue.checkjstring(), +LuaValue.optstring(LuaString), +LuaValue.tostring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNil.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNil.html new file mode 100644 index 000000000..6c1b8f640 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNil.html @@ -0,0 +1,1092 @@ + + + + + + +LuaNil (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaNil

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaNil
+
+
+
+
public class LuaNil
extends LuaValue
+ + +

+Class to encapsulate behavior of the singleton instance nil +

+ There will be one instance of this class, LuaValue.NIL, + per Java virtual machine. + However, the Varargs instance LuaValue.NONE + which is the empty list, + is also considered treated as a nil value by default. +

+ Although it is possible to test for nil using Java == operator, + the recommended approach is to use the method LuaValue.isnil() + instead. By using that any ambiguities between + LuaValue.NIL and LuaValue.NONE are avoided. +

+ +

+

+
See Also:
LuaValue, +LuaValue.NIL
+
+ +

+ + + + + + + + + + + +
+Field Summary
+static LuaValues_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
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuechecknotnil() + +
+          Check that this is not the value LuaValue.NIL, or throw LuaError if it is
+ booleanequals(java.lang.Object o) + +
+           
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ booleanisnil() + +
+          Check if this is #NIL
+ booleanisvalidkey() + +
+          Return true if this is a valid key in a table index operation.
+ LuaValuenot() + +
+          Unary not: return inverse boolean value (~this) as defined by lua not operator
+ booleanoptboolean(boolean defval) + +
+          Check that optional argument is a boolean and return its boolean value
+ LuaClosureoptclosure(LuaClosure defval) + +
+          Check that optional argument is a closure and return as LuaClosure
+ doubleoptdouble(double defval) + +
+          Check that optional argument is a number or string convertible to number and return as double
+ LuaFunctionoptfunction(LuaFunction defval) + +
+          Check that optional argument is a function and return as LuaFunction
+ intoptint(int defval) + +
+          Check that optional argument is a number or string convertible to number and return as int
+ LuaIntegeroptinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+ java.lang.Stringoptjstring(java.lang.String defval) + +
+          Check that optional argument is a string or number and return as Java String
+ longoptlong(long defval) + +
+          Check that optional argument is a number or string convertible to number and return as long
+ LuaNumberoptnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+ LuaStringoptstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaTableopttable(LuaTable defval) + +
+          Check that optional argument is a table and return as LuaTable
+ LuaThreadoptthread(LuaThread defval) + +
+          Check that optional argument is a thread and return as LuaThread
+ java.lang.Objectoptuserdata(java.lang.Class c, + java.lang.Object defval) + +
+          Check that optional argument is a userdata whose instance is of a type + and return the Object instance
+ java.lang.Objectoptuserdata(java.lang.Object defval) + +
+          Check that optional argument is a userdata and return the Object instance
+ LuaValueoptvalue(LuaValue defval) + +
+          Perform argument check that this is not nil or none.
+ booleantoboolean() + +
+          Convert to boolean false if LuaValue.NIL or LuaValue.FALSE, true if anything else
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ java.lang.StringtoString() + +
+          Convert the value to a human readable string using LuaValue.tojstring()
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq_b, eq, eqmtcall, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnumber, isstring, istable, isthread, isuserdata, isuserdata, 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, onInvoke, 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, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, tobyte, tochar, todouble, tofloat, toint, tolong, tonumber, toshort, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
+
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Description copied from class: LuaValue
+
Convert the value to a human readable string using LuaValue.tojstring() +

+

+
Overrides:
toString in class LuaValue
+
+
+ +
Returns:
String value intended to be human readible.
See Also:
LuaValue.tostring(), +LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkstring(), +LuaValue.toString()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+not

+
+public LuaValue not()
+
+
Description copied from class: LuaValue
+
Unary not: return inverse boolean value (~this) as defined by lua not operator +

+

+
Overrides:
not in class LuaValue
+
+
+ +
Returns:
LuaValue.TRUE if LuaValue.NIL or LuaValue.FALSE, otherwise LuaValue.FALSE
+
+
+
+ +

+toboolean

+
+public boolean toboolean()
+
+
Description copied from class: LuaValue
+
Convert to boolean false if LuaValue.NIL or LuaValue.FALSE, true if anything else +

+

+
Overrides:
toboolean in class LuaValue
+
+
+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
LuaValue.optboolean(boolean), +LuaValue.checkboolean(), +LuaValue.isboolean(), +LuaValue.TBOOLEAN
+
+
+
+ +

+isnil

+
+public boolean isnil()
+
+
Description copied from class: LuaValue
+
Check if this is #NIL +

+

+
Overrides:
isnil in class LuaValue
+
+
+ +
Returns:
true if this is #NIL, otherwise false
See Also:
LuaValue.NIL, +LuaValue.NONE, +LuaValue.checknotnil(), +LuaValue.optvalue(LuaValue), +Varargs.isnoneornil(int), +LuaValue.TNIL, +LuaValue.TNONE
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
+
Overrides:
equals in class LuaValue
+
+
+
+
+
+
+ +

+checknotnil

+
+public LuaValue checknotnil()
+
+
Description copied from class: LuaValue
+
Check that this is not the value LuaValue.NIL, or throw LuaError if it is +

+

+
Overrides:
checknotnil in class LuaValue
+
+
+ +
Returns:
this if it is not LuaValue.NIL
See Also:
LuaValue.optvalue(LuaValue)
+
+
+
+ +

+isvalidkey

+
+public boolean isvalidkey()
+
+
Description copied from class: LuaValue
+
Return true if this is a valid key in a table index operation. +

+

+
Overrides:
isvalidkey in class LuaValue
+
+
+ +
Returns:
true if valid as a table key, otherwise false
See Also:
LuaValue.isnil(), +LuaValue.isinttype()
+
+
+
+ +

+optboolean

+
+public boolean optboolean(boolean defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a boolean and return its boolean value +

+

+
Overrides:
optboolean in class LuaValue
+
+
+
Parameters:
defval - boolean value to return if this is nil or none +
Returns:
this cast to boolean if a LuaBoolean, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkboolean(), +LuaValue.isboolean(), +LuaValue.TBOOLEAN
+
+
+
+ +

+optclosure

+
+public LuaClosure optclosure(LuaClosure defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a closure and return as LuaClosure +

+ A LuaClosure is a LuaFunction that executes lua byteccode. +

+

+
Overrides:
optclosure in class LuaValue
+
+
+
Parameters:
defval - LuaClosure to return if this is nil or none +
Returns:
this cast to LuaClosure if a function, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkclosure(), +LuaValue.isclosure(), +LuaValue.TFUNCTION
+
+
+
+ +

+optdouble

+
+public double optdouble(double defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as double +

+

+
Overrides:
optdouble in class LuaValue
+
+
+
Parameters:
defval - double to return if this is nil or none +
Returns:
this cast to double if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optint(int), +LuaValue.optinteger(LuaInteger), +LuaValue.checkdouble(), +LuaValue.todouble(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optfunction

+
+public LuaFunction optfunction(LuaFunction defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a function and return as LuaFunction +

+ A LuaFunction may either be a Java function that implements + functionality directly in Java, or a LuaClosure + which is a LuaFunction that executes lua bytecode. +

+

+
Overrides:
optfunction in class LuaValue
+
+
+
Parameters:
defval - LuaFunction to return if this is nil or none +
Returns:
this cast to LuaFunction if a function, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.checkfunction(), +LuaValue.isfunction(), +LuaValue.TFUNCTION
+
+
+
+ +

+optint

+
+public int optint(int defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as int +

+

+
Overrides:
optint in class LuaValue
+
+
+
Parameters:
defval - int to return if this is nil or none +
Returns:
this cast to int if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optinteger(LuaInteger), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(LuaInteger defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaInteger +

+

+
Overrides:
optinteger in class LuaValue
+
+
+
Parameters:
defval - LuaInteger to return if this is nil or none +
Returns:
this converted and wrapped in LuaInteger if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optlong

+
+public long optlong(long defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as long +

+

+
Overrides:
optlong in class LuaValue
+
+
+
Parameters:
defval - long to return if this is nil or none +
Returns:
this cast to long if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(LuaNumber defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaNumber +

+

+
Overrides:
optnumber in class LuaValue
+
+
+
Parameters:
defval - LuaNumber to return if this is nil or none +
Returns:
this cast to LuaNumber if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+opttable

+
+public LuaTable opttable(LuaTable defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a table and return as LuaTable +

+

+
Overrides:
opttable in class LuaValue
+
+
+
Parameters:
defval - LuaTable to return if this is nil or none +
Returns:
this cast to LuaTable if a table, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checktable(), +LuaValue.istable(), +LuaValue.TTABLE
+
+
+
+ +

+optthread

+
+public LuaThread optthread(LuaThread defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a thread and return as LuaThread +

+

+
Overrides:
optthread in class LuaValue
+
+
+
Parameters:
defval - LuaThread to return if this is nil or none +
Returns:
this cast to LuaTable if a thread, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkthread(), +LuaValue.isthread(), +LuaValue.TTHREAD
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(java.lang.String defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as Java String +

+

+
Overrides:
optjstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to String if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkjstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+optstring

+
+public LuaString optstring(LuaString defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as LuaString +

+

+
Overrides:
optstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to LuaString if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optjstring(String), +LuaValue.checkstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Object defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a userdata and return the Object instance +

+

+
Overrides:
optuserdata in class LuaValue
+
+
+
Parameters:
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkuserdata(), +LuaValue.isuserdata(), +LuaValue.optuserdata(Class, Object), +LuaValue.TUSERDATA
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Class c,
+                                    java.lang.Object defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a userdata whose instance is of a type + and return the Object instance +

+

+
Overrides:
optuserdata in class LuaValue
+
+
+
Parameters:
c - Class to test userdata instance against
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata and instance is assignable to c, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkuserdata(Class), +LuaValue.isuserdata(Class), +LuaValue.optuserdata(Object), +LuaValue.TUSERDATA
+
+
+
+ +

+optvalue

+
+public LuaValue optvalue(LuaValue defval)
+
+
Description copied from class: LuaValue
+
Perform argument check that this is not nil or none. +

+

+
Overrides:
optvalue in class LuaValue
+
+
+
Parameters:
defval - LuaValue to return if this is nil or none +
Returns:
this if not nil or none, else defval
See Also:
LuaValue.NIL, +LuaValue.NONE, +LuaValue.isnil(), +Varargs.isnoneornil(int), +LuaValue.TNIL, +LuaValue.TNONE
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNumber.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNumber.html new file mode 100644 index 000000000..7952f6c0f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaNumber.html @@ -0,0 +1,750 @@ + + + + + + +LuaNumber (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaNumber

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaNumber
+
+
+
Direct Known Subclasses:
LuaDouble, LuaInteger
+
+
+
+
public abstract class LuaNumber
extends LuaValue
+ + +

+Base class for representing numbers as lua values directly. +

+ The main subclasses are LuaInteger which holds values that fit in a java int, + and LuaDouble which holds all other number values. +

+ +

+

+
See Also:
LuaInteger, +LuaDouble, +LuaValue
+
+ +

+ + + + + + + + + + + +
+Field Summary
+static LuaValues_metatable + +
+          Shared static metatable for all number values represented in lua.
+ + + + + + + +
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
LuaNumber() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaNumberchecknumber() + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaNumberchecknumber(java.lang.String errmsg) + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ Bufferconcat(Buffer rhs) + +
+          Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcat(LuaValue rhs) + +
+          Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcatTo(LuaNumber lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueconcatTo(LuaString lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ booleanisnumber() + +
+          Check if this is a number
+ booleanisstring() + +
+          Check if this is a string
+ LuaNumberoptnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+ LuaValuetonumber() + +
+          Conditionally convert to lua number without throwing errors.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checkstring, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concatmt, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnil, 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, optfunction, optint, optinteger, optjstring, optlong, 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, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
Shared static metatable for all number values represented in lua. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaNumber

+
+public LuaNumber()
+
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Overrides:
checknumber in class LuaValue
+
+
+ +
Returns:
value as a LuaNumber if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.checklong(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber(java.lang.String errmsg)
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Overrides:
checknumber in class LuaValue
+
+
+
Parameters:
errmsg - String message to supply if conversion fails +
Returns:
value as a LuaNumber if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.checklong(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(LuaNumber defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaNumber +

+

+
Overrides:
optnumber in class LuaValue
+
+
+
Parameters:
defval - LuaNumber to return if this is nil or none +
Returns:
this cast to LuaNumber if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tonumber

+
+public LuaValue tonumber()
+
+
Description copied from class: LuaValue
+
Conditionally convert to lua number without throwing errors. +

+ In lua all numbers are strings, but not all strings are numbers. + This function will return + the LuaValue this if it is a number + or a string convertible to a number, + and LuaValue.NIL for all other cases. +

+ This allows values to be tested for their "numeric-ness" without + the penalty of throwing exceptions, + nor the cost of converting the type and creating storage for it. +

+

+
Overrides:
tonumber in class LuaValue
+
+
+ +
Returns:
this if it is a LuaNumber + or LuaString that can be converted to a number, + otherwise LuaValue.NIL
See Also:
LuaValue.tostring(), +LuaValue.optnumber(LuaNumber), +LuaValue.checknumber(), +LuaValue.toint(), +LuaValue.todouble()
+
+
+
+ +

+isnumber

+
+public boolean isnumber()
+
+
Description copied from class: LuaValue
+
Check if this is a number +

+

+
Overrides:
isnumber in class LuaValue
+
+
+ +
Returns:
true if this is a number, + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checknumber(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+isstring

+
+public boolean isstring()
+
+
Description copied from class: LuaValue
+
Check if this is a string +

+

+
Overrides:
isstring in class LuaValue
+
+
+ +
Returns:
true if this is a string, + meaning derives from LuaString or LuaNumber, + otherwise false
See Also:
LuaValue.tostring(), +LuaValue.checkstring(), +LuaValue.optstring(LuaString), +LuaValue.TSTRING
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+concat

+
+public LuaValue concat(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concat in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
LuaValue resulting from concatenation of (this .. rhs)
+
+
+
+ +

+concat

+
+public Buffer concat(Buffer rhs)
+
+
Description copied from class: LuaValue
+
Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concat in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side Buffer to perform the operation with +
Returns:
LuaString resulting from concatenation of (this .. rhs)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaNumber lhs)
+
+
Description copied from class: LuaValue
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concatTo in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this)
See Also:
LuaValue.concat(LuaValue)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaString lhs)
+
+
Description copied from class: LuaValue
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concatTo in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this)
See Also:
LuaValue.concat(LuaValue)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaString.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaString.html new file mode 100644 index 000000000..36d2074c0 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaString.html @@ -0,0 +1,3959 @@ + + + + + + +LuaString (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaString

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaString
+
+
+
+
public class LuaString
extends LuaValue
+ + +

+Subclass of LuaValue for representing lua strings. +

+ Because lua string values are more nearly sequences of bytes than + sequences of characters or unicode code points, the LuaString + implementation holds the string value in an internal byte array. +

+ LuaString values are not considered mutable once constructed, + so multiple LuaString values can chare a single byte array. +

+ Currently LuaStrings are pooled via a centrally managed weak table. + To ensure that as many string values as possible take advantage of this, + Constructors are not exposed directly. As with number, booleans, and nil, + instance construction should be via LuaValue.valueOf(byte[]) or similar API. +

+ Because of this pooling, users of LuaString must not directly alter the + bytes in a LuaString, or undefined behavior will result. +

+ When Java Strings are used to initialize LuaString data, the UTF8 encoding is assumed. + The functions + lengthAsUtf8(char[]), + encodeToUtf8(char[], int, byte[], int), and + decodeAsUtf8(byte[], int, int) + are used to convert back and forth between UTF8 byte arrays and character arrays. +

+ +

+

+
See Also:
LuaValue, +LuaValue.valueOf(String), +LuaValue.valueOf(byte[])
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ byte[]m_bytes + +
+          The bytes for the string.
+ intm_length + +
+          The number of bytes that comprise this string
+ intm_offset + +
+          The offset into the byte array, 0 means start at the first byte
+static LuaValues_metatable + +
+          The singleton instance for string metatables that forwards to the string functions.
+ + + + + + + +
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
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValueadd(double rhs) + +
+          Add: Perform numeric add operation with another value + of double type with metatag processing
+ LuaValueadd(int rhs) + +
+          Add: Perform numeric add operation with another value + of int type with metatag processing
+ LuaValueadd(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ intcharAt(int index) + +
+           
+ doublecheckdouble() + +
+          Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric
+ intcheckint() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ LuaIntegercheckinteger() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ java.lang.Stringcheckjstring() + +
+          Convert this value to a Java String.
+ longchecklong() + +
+          Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric
+ LuaNumberchecknumber() + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaNumberchecknumber(java.lang.String msg) + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaStringcheckstring() + +
+          Check that this is a lua string, or throw LuaError if it is not.
+ Bufferconcat(Buffer rhs) + +
+          Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcat(LuaValue rhs) + +
+          Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcatTo(LuaNumber lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueconcatTo(LuaString lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing.
+ voidcopyInto(int strOffset, + byte[] bytes, + int arrayOffset, + int len) + +
+          Copy the bytes of the string into the given byte array.
+static java.lang.StringdecodeAsUtf8(byte[] bytes, + int offset, + int length) + +
+          Convert to Java String interpreting as utf8 characters.
+ LuaValuediv(double rhs) + +
+          Divide: Perform numeric divide operation by another value + of double type without metatag processing
+ LuaValuediv(int rhs) + +
+          Divide: Perform numeric divide operation by another value + of int type without metatag processing
+ LuaValuediv(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ LuaValuedivInto(double lhs) + +
+          Reverse-divide: Perform numeric divide operation into another value + with metatag processing
+static intencodeToUtf8(char[] chars, + int nchars, + byte[] bytes, + int off) + +
+          Encode the given Java string as UTF-8 bytes, writing the result to bytes + starting at offset.
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ.
+static booleanequals(byte[] a, + int i, + byte[] b, + int j, + int n) + +
+           
+static booleanequals(LuaString a, + int i, + LuaString b, + int j, + int n) + +
+           
+ booleanequals(java.lang.Object o) + +
+           
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ booleangt_b(double rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleangt_b(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangt_b(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleangteq_b(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ inthashCode() + +
+           
+static inthashCode(byte[] bytes, + int offset, + int length) + +
+          Compute the hash code of a sequence of bytes within a byte array using + lua's rules for string hashes.
+ intindexOf(byte b, + int start) + +
+          Find the index of a byte starting at a point in this string
+ intindexOf(LuaString s, + int start) + +
+          Find the index of a string starting at a point in this string
+ intindexOfAny(LuaString accept) + +
+          Java version of strpbrk - find index of any byte that in an accept string.
+ booleanisint() + +
+          Check if this is a number and is representable by java int + without rounding or truncation
+ booleanislong() + +
+          Check if this is a number and is representable by java long + without rounding or truncation
+ booleanisnumber() + +
+          Check if this is a number
+ booleanisstring() + +
+          Check if this is a string
+ booleanisValidUtf8() + +
+          Check that a byte sequence is valid UTF-8
+ intlastIndexOf(LuaString s) + +
+          Find the last index of a string in this string
+ LuaValuelen() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+ intlength() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+static intlengthAsUtf8(char[] chars) + +
+          Count the number of bytes required to encode the string as UTF-8.
+ booleanlt_b(double rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleanlt_b(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlt_b(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanlteq_b(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ intluaByte(int index) + +
+           
+ LuaValuemod(double rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of double type without metatag processing
+ LuaValuemod(int rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of int type without metatag processing
+ LuaValuemod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValuemodFrom(double lhs) + +
+          Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing
+ LuaValuemul(double rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of double type with metatag processing
+ LuaValuemul(int rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of int type with metatag processing
+ LuaValuemul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ LuaValueneg() + +
+          Unary minus: return negative value (-this) as defined by lua unary minus operator
+ doubleoptdouble(double defval) + +
+          Check that optional argument is a number or string convertible to number and return as double
+ intoptint(int defval) + +
+          Check that optional argument is a number or string convertible to number and return as int
+ LuaIntegeroptinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+ java.lang.Stringoptjstring(java.lang.String defval) + +
+          Check that optional argument is a string or number and return as Java String
+ longoptlong(long defval) + +
+          Check that optional argument is a number or string convertible to number and return as long
+ LuaNumberoptnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+ LuaStringoptstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaValuepow(double rhs) + +
+          Raise to power: Raise this value to a power + of double type with metatag processing
+ LuaValuepow(int rhs) + +
+          Raise to power: Raise this value to a power + of int type with metatag processing
+ LuaValuepow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+ LuaValuepowWith(double lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValuepowWith(int lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ voidprintToStream(java.io.PrintStream ps) + +
+          Print the bytes of the LuaString to a PrintStream as if it were + an ASCII string, quoting and escaping control characters.
+ booleanraweq(LuaString s) + +
+          Equals: Perform direct equality comparison with a LuaString value + without metatag processing.
+ booleanraweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ intrawlen() + +
+          Get raw length of table or string without metatag processing.
+ doublescannumber() + +
+          Convert to a number in base 10, or base 16 if the string starts with '0x', + or return Double.NaN if it cannot be converted to a number.
+ doublescannumber(int base) + +
+          Convert to a number in a base, or return Double.NaN if not a number.
+ intstrcmp(LuaString rhs) + +
+          Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values.
+ intstrcmp(LuaValue lhs) + +
+          Perform string comparison with another value + of any type + using string comparison based on byte values.
+ LuaStringstrvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ LuaValuesub(double rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of double type with metatag processing
+ LuaValuesub(int rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of int type with metatag processing
+ LuaValuesub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+ LuaValuesubFrom(double lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing
+ LuaStringsubstring(int beginIndex, + int endIndex) + +
+          Take a substring using Java zero-based indexes for begin and end or range.
+ bytetobyte() + +
+          Convert to byte if numeric, or 0 if not.
+ chartochar() + +
+          Convert to char if numeric, or 0 if not.
+ doubletodouble() + +
+          Convert to double if numeric, or 0 if not.
+ floattofloat() + +
+          Convert to float if numeric, or 0 if not.
+ java.io.InputStreamtoInputStream() + +
+          Convert value to an input stream.
+ inttoint() + +
+          Convert to int if numeric, or 0 if not.
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ longtolong() + +
+          Convert to long if numeric, or 0 if not.
+ LuaValuetonumber() + +
+          convert to a number using baee 10 or base 16 if it starts with '0x', + or NIL if it can't be converted
+ LuaValuetonumber(int base) + +
+          convert to a number using a supplied base, or NIL if it can't be converted
+ shorttoshort() + +
+          Convert to short if numeric, or 0 if not.
+ LuaValuetostring() + +
+          Conditionally convert to lua string without throwing errors.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+static LuaStringvalueOf(byte[] bytes) + +
+          Construct a LuaString for all the bytes in a byte array.
+static LuaStringvalueOf(byte[] bytes, + int off, + int len) + +
+          Construct a LuaString for a portion of a byte array.
+static LuaStringvalueOf(char[] bytes) + +
+          Construct a LuaString using the supplied characters as byte values.
+static LuaStringvalueOf(char[] bytes, + int off, + int len) + +
+          Construct a LuaString using the supplied characters as byte values.
+static LuaStringvalueOf(java.lang.String string) + +
+          Get a LuaString instance whose bytes match + the supplied Java String using the UTF8 encoding.
+static LuaStringvalueUsing(byte[] bytes) + +
+          Construct a LuaString for all the bytes in a byte array, possibly using + the supplied array as the backing store.
+static LuaStringvalueUsing(byte[] bytes, + int off, + int len) + +
+          Construct a LuaString around, possibly using the the supplied + byte array as the backing store.
+ voidwrite(java.io.DataOutputStream writer, + int i, + int len) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkfunction, checkglobals, checkmetatag, checknotnil, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concatmt, concatTo, eqmtcall, error, get, get, get, gettable, gt, gt, gteq, gteq, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isinttype, isnil, istable, isthread, isuserdata, isuserdata, isvalidkey, lenerror, listOf, listOf, load, lt, lt, lteq, lteq, metatableOf, metatag, method, method, method, method, method, method, narg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optfunction, opttable, optthread, optuserdata, optuserdata, optvalue, or, presize, raweq, raweq, raweq, rawget, rawget, rawget, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strongvalue, subargs, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, 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, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
The singleton instance for string metatables that forwards to the string functions. + Typically, this is set to the string metatable as a side effect of loading the string + library, and is read-write to provide flexible behavior by default. When used in a + server environment where there may be roge scripts, this should be replaced with a + read-only table since it is shared across all lua code in this Java VM. +

+

+
+
+
+ +

+m_bytes

+
+public final byte[] m_bytes
+
+
The bytes for the string. These must not be mutated directly because + the backing may be shared by multiple LuaStrings, and the hash code is + computed only at construction time. + It is exposed only for performance and legacy reasons. +

+

+
+
+
+ +

+m_offset

+
+public final int m_offset
+
+
The offset into the byte array, 0 means start at the first byte +

+

+
+
+
+ +

+m_length

+
+public final int m_length
+
+
The number of bytes that comprise this string +

+

+
+
+ + + + + + + + +
+Method Detail
+ +

+valueOf

+
+public static LuaString valueOf(java.lang.String string)
+
+
Get a LuaString instance whose bytes match + the supplied Java String using the UTF8 encoding. +

+

+
Parameters:
string - Java String containing characters to encode as UTF8 +
Returns:
LuaString with UTF8 bytes corresponding to the supplied String
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(byte[] bytes,
+                                int off,
+                                int len)
+
+
Construct a LuaString for a portion of a byte array. +

+ The array is first be used as the backing for this object, so clients must not change contents. + If the supplied value for 'len' is more than half the length of the container, the + supplied byte array will be used as the backing, otherwise the bytes will be copied to a + new byte array, and cache lookup may be performed. +

+

+

+
Parameters:
bytes - byte buffer
off - offset into the byte buffer
len - length of the byte buffer +
Returns:
LuaString wrapping the byte buffer
+
+
+
+ +

+valueUsing

+
+public static LuaString valueUsing(byte[] bytes,
+                                   int off,
+                                   int len)
+
+
Construct a LuaString around, possibly using the the supplied + byte array as the backing store. +

+ The caller must ensure that the array is not mutated after the call. + However, if the string is short enough the short-string cache is checked + for a match which may be used instead of the supplied byte array. +

+

+

+
Parameters:
bytes - byte buffer +
Returns:
LuaString wrapping the byte buffer, or an equivalent string.
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(char[] bytes)
+
+
Construct a LuaString using the supplied characters as byte values. +

+ Only the low-order 8-bits of each character are used, the remainder is ignored. +

+ This is most useful for constructing byte sequences that do not conform to UTF8. +

+

+
Parameters:
bytes - array of char, whose values are truncated at 8-bits each and put into a byte array. +
Returns:
LuaString wrapping a copy of the byte buffer
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(char[] bytes,
+                                int off,
+                                int len)
+
+
Construct a LuaString using the supplied characters as byte values. +

+ Only the low-order 8-bits of each character are used, the remainder is ignored. +

+ This is most useful for constructing byte sequences that do not conform to UTF8. +

+

+
Parameters:
bytes - array of char, whose values are truncated at 8-bits each and put into a byte array. +
Returns:
LuaString wrapping a copy of the byte buffer
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(byte[] bytes)
+
+
Construct a LuaString for all the bytes in a byte array. +

+ The LuaString returned will either be a new LuaString containing a copy + of the bytes array, or be an existing LuaString used already having the same value. +

+

+

+
Parameters:
bytes - byte buffer +
Returns:
LuaString wrapping the byte buffer
+
+
+
+ +

+valueUsing

+
+public static LuaString valueUsing(byte[] bytes)
+
+
Construct a LuaString for all the bytes in a byte array, possibly using + the supplied array as the backing store. +

+ The LuaString returned will either be a new LuaString containing the byte array, + or be an existing LuaString used already having the same value. +

+ The caller must not mutate the contents of the byte array after this call, as + it may be used elsewhere due to recent short string caching. +

+

+
Parameters:
bytes - byte buffer +
Returns:
LuaString wrapping the byte buffer
+
+
+
+ +

+isstring

+
+public boolean isstring()
+
+
Description copied from class: LuaValue
+
Check if this is a string +

+

+
Overrides:
isstring in class LuaValue
+
+
+ +
Returns:
true if this is a string, + meaning derives from LuaString or LuaNumber, + otherwise false
See Also:
LuaValue.tostring(), +LuaValue.checkstring(), +LuaValue.optstring(LuaString), +LuaValue.TSTRING
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+neg

+
+public LuaValue neg()
+
+
Description copied from class: LuaValue
+
Unary minus: return negative value (-this) as defined by lua unary minus operator +

+

+
Overrides:
neg in class LuaValue
+
+
+ +
Returns:
boolean inverse as LuaBoolean if boolean or nil, + numeric inverse as LuaNumber if numeric, + or metatag processing result if LuaValue.UNM metatag is defined
+
+
+
+ +

+add

+
+public LuaValue add(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(double rhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric
See Also:
LuaValue.add(LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(int rhs)
+
+
Description copied from class: LuaValue
+
Add: Perform numeric add operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
add in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric
See Also:
LuaValue.add(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(double rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(int rhs)
+
+
Description copied from class: LuaValue
+
Subtract: Perform numeric subtract operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
sub in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric
See Also:
LuaValue.sub(LuaValue)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
subFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric
See Also:
LuaValue.sub(LuaValue), +LuaValue.sub(double), +LuaValue.sub(int)
+
+
+
+ +

+mul

+
+public LuaValue mul(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(double rhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(int rhs)
+
+
Description copied from class: LuaValue
+
Multiply: Perform numeric multiply operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mul in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric
See Also:
LuaValue.mul(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(double rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(int rhs)
+
+
Description copied from class: LuaValue
+
Raise to power: Raise this value to a power + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
pow in class LuaValue
+
+
+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric
See Also:
LuaValue.pow(LuaValue)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(int lhs)
+
+
Description copied from class: LuaValue
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
powWith in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric
See Also:
LuaValue.pow(LuaValue), +LuaValue.pow(double), +LuaValue.pow(int)
+
+
+
+ +

+div

+
+public LuaValue div(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(double rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(int rhs)
+
+
Description copied from class: LuaValue
+
Divide: Perform numeric divide operation by another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.div(LuaValue) must be used +

+

+
Overrides:
div in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric
See Also:
LuaValue.div(LuaValue)
+
+
+
+ +

+divInto

+
+public LuaValue divInto(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-divide: Perform numeric divide operation into another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
divInto in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be divided by this +
Returns:
value of (lhs / this) if this is numeric
See Also:
LuaValue.div(LuaValue), +LuaValue.div(double), +LuaValue.div(int)
+
+
+
+ +

+mod

+
+public LuaValue mod(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if both are numeric, + or LuaValue if metatag processing occurs
See Also:
LuaValue.arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(double rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(int rhs)
+
+
Description copied from class: LuaValue
+
Modulo: Perform numeric modulo operation with another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing LuaValue.mod(LuaValue) must be used +

+

+
Overrides:
mod in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric
See Also:
LuaValue.mod(LuaValue)
+
+
+
+ +

+modFrom

+
+public LuaValue modFrom(double lhs)
+
+
Description copied from class: LuaValue
+
Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Overrides:
modFrom in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value which will be modulo'ed by this +
Returns:
value of (lhs % this) if this is numeric
See Also:
LuaValue.mod(LuaValue), +LuaValue.mod(double), +LuaValue.mod(int)
+
+
+
+ +

+lt

+
+public LuaValue lt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this < rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this <= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
lteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this > rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gt_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
LuaValue.TRUE if (this >= rhs), LuaValue.FALSE if not, + or LuaValue if metatag processing occurs
See Also:
LuaValue.gteq_b(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(LuaValue), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(int rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(int), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(double rhs)
+
+
Description copied from class: LuaValue
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Overrides:
gteq_b in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs.
See Also:
LuaValue.gteq(double), +LuaValue.comparemt(LuaValue, LuaValue)
+
+
+
+ +

+concat

+
+public LuaValue concat(LuaValue rhs)
+
+
Description copied from class: LuaValue
+
Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concat in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
LuaValue resulting from concatenation of (this .. rhs)
+
+
+
+ +

+concat

+
+public Buffer concat(Buffer rhs)
+
+
Description copied from class: LuaValue
+
Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concat in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side Buffer to perform the operation with +
Returns:
LuaString resulting from concatenation of (this .. rhs)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaNumber lhs)
+
+
Description copied from class: LuaValue
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concatTo in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this)
See Also:
LuaValue.concat(LuaValue)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaString lhs)
+
+
Description copied from class: LuaValue
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Overrides:
concatTo in class LuaValue
+
+
+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this)
See Also:
LuaValue.concat(LuaValue)
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaValue lhs)
+
+
Description copied from class: LuaValue
+
Perform string comparison with another value + of any type + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Overrides:
strcmp in class LuaValue
+
+
+
Parameters:
lhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string.
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaString rhs)
+
+
Description copied from class: LuaValue
+
Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Overrides:
strcmp in class LuaValue
+
+
+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string.
+
+
+
+ +

+checkint

+
+public int checkint()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkint in class LuaValue
+
+
+ +
Returns:
value cast to a int if numeric
See Also:
LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optint(int), +LuaValue.TNUMBER
+
+
+
+ +

+checkinteger

+
+public LuaInteger checkinteger()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+
Overrides:
checkinteger in class LuaValue
+
+
+ +
Returns:
value cast to a int and wrapped in LuaInteger if numeric
See Also:
LuaValue.checkint(), +LuaValue.checklong(), +LuaValue.checkdouble(), +LuaValue.optinteger(LuaInteger), +LuaValue.TNUMBER
+
+
+
+ +

+checklong

+
+public long checklong()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to long and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to long, so may also lose precision. +

+

+
Overrides:
checklong in class LuaValue
+
+
+ +
Returns:
value cast to a long if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+checkdouble

+
+public double checkdouble()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric +

+ Values that are LuaNumber and values that are LuaString + that can be converted to a number will be converted to double. +

+

+
Overrides:
checkdouble in class LuaValue
+
+
+ +
Returns:
value cast to a double if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checklong(), +LuaValue.optdouble(double), +LuaValue.TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber()
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Overrides:
checknumber in class LuaValue
+
+
+ +
Returns:
value as a LuaNumber if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.checklong(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber(java.lang.String msg)
+
+
Description copied from class: LuaValue
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Overrides:
checknumber in class LuaValue
+
+
+
Parameters:
msg - String message to supply if conversion fails +
Returns:
value as a LuaNumber if numeric
See Also:
LuaValue.checkint(), +LuaValue.checkinteger(), +LuaValue.checkdouble(), +LuaValue.checklong(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+isnumber

+
+public boolean isnumber()
+
+
Description copied from class: LuaValue
+
Check if this is a number +

+

+
Overrides:
isnumber in class LuaValue
+
+
+ +
Returns:
true if this is a number, + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checknumber(), +LuaValue.optnumber(LuaNumber), +LuaValue.TNUMBER
+
+
+
+ +

+isint

+
+public boolean isint()
+
+
Description copied from class: LuaValue
+
Check if this is a number and is representable by java int + without rounding or truncation +

+

+
Overrides:
isint in class LuaValue
+
+
+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by int, + otherwise false
See Also:
LuaValue.isinttype(), +LuaValue.islong(), +LuaValue.tonumber(), +LuaValue.checkint(), +LuaValue.optint(int), +LuaValue.TNUMBER
+
+
+
+ +

+islong

+
+public boolean islong()
+
+
Description copied from class: LuaValue
+
Check if this is a number and is representable by java long + without rounding or truncation +

+

+
Overrides:
islong in class LuaValue
+
+
+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by long, + otherwise false
See Also:
LuaValue.tonumber(), +LuaValue.checklong(), +LuaValue.optlong(long), +LuaValue.TNUMBER
+
+
+
+ +

+tobyte

+
+public byte tobyte()
+
+
Description copied from class: LuaValue
+
Convert to byte if numeric, or 0 if not. +

+

+
Overrides:
tobyte in class LuaValue
+
+
+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tochar

+
+public char tochar()
+
+
Description copied from class: LuaValue
+
Convert to char if numeric, or 0 if not. +

+

+
Overrides:
tochar in class LuaValue
+
+
+ +
Returns:
Value cast to char if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+todouble

+
+public double todouble()
+
+
Description copied from class: LuaValue
+
Convert to double if numeric, or 0 if not. +

+

+
Overrides:
todouble in class LuaValue
+
+
+ +
Returns:
Value cast to double if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.optdouble(double), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tofloat

+
+public float tofloat()
+
+
Description copied from class: LuaValue
+
Convert to float if numeric, or 0 if not. +

+

+
Overrides:
tofloat in class LuaValue
+
+
+ +
Returns:
Value cast to float if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toint

+
+public int toint()
+
+
Description copied from class: LuaValue
+
Convert to int if numeric, or 0 if not. +

+

+
Overrides:
toint in class LuaValue
+
+
+ +
Returns:
Value cast to int if number or string convertible to number, otherwise 0
See Also:
LuaValue.tobyte(), +LuaValue.tochar(), +LuaValue.toshort(), +LuaValue.tolong(), +LuaValue.tofloat(), +LuaValue.todouble(), +LuaValue.optint(int), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+tolong

+
+public long tolong()
+
+
Description copied from class: LuaValue
+
Convert to long if numeric, or 0 if not. +

+

+
Overrides:
tolong in class LuaValue
+
+
+ +
Returns:
Value cast to long if number or string convertible to number, otherwise 0
See Also:
LuaValue.isint(), +LuaValue.isinttype(), +LuaValue.toint(), +LuaValue.todouble(), +LuaValue.optlong(long), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+toshort

+
+public short toshort()
+
+
Description copied from class: LuaValue
+
Convert to short if numeric, or 0 if not. +

+

+
Overrides:
toshort in class LuaValue
+
+
+ +
Returns:
Value cast to short if number or string convertible to number, otherwise 0
See Also:
LuaValue.toint(), +LuaValue.todouble(), +LuaValue.checknumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optdouble

+
+public double optdouble(double defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as double +

+

+
Overrides:
optdouble in class LuaValue
+
+
+
Parameters:
defval - double to return if this is nil or none +
Returns:
this cast to double if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optint(int), +LuaValue.optinteger(LuaInteger), +LuaValue.checkdouble(), +LuaValue.todouble(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optint

+
+public int optint(int defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as int +

+

+
Overrides:
optint in class LuaValue
+
+
+
Parameters:
defval - int to return if this is nil or none +
Returns:
this cast to int if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optinteger(LuaInteger), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(LuaInteger defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaInteger +

+

+
Overrides:
optinteger in class LuaValue
+
+
+
Parameters:
defval - LuaInteger to return if this is nil or none +
Returns:
this converted and wrapped in LuaInteger if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optlong

+
+public long optlong(long defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as long +

+

+
Overrides:
optlong in class LuaValue
+
+
+
Parameters:
defval - long to return if this is nil or none +
Returns:
this cast to long if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(LuaNumber defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a number or string convertible to number and return as LuaNumber +

+

+
Overrides:
optnumber in class LuaValue
+
+
+
Parameters:
defval - LuaNumber to return if this is nil or none +
Returns:
this cast to LuaNumber if numeric, + defval if nil or none, + throws LuaError otherwise
See Also:
LuaValue.optdouble(double), +LuaValue.optlong(long), +LuaValue.optint(int), +LuaValue.checkint(), +LuaValue.toint(), +LuaValue.tonumber(), +LuaValue.isnumber(), +LuaValue.TNUMBER
+
+
+
+ +

+optstring

+
+public LuaString optstring(LuaString defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as LuaString +

+

+
Overrides:
optstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to LuaString if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optjstring(String), +LuaValue.checkstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+tostring

+
+public LuaValue tostring()
+
+
Description copied from class: LuaValue
+
Conditionally convert to lua string without throwing errors. +

+ In lua all numbers are strings, so this function will return + the LuaValue this if it is a string or number, + and LuaValue.NIL for all other cases. +

+ This allows values to be tested for their "string-ness" without + the penalty of throwing exceptions. +

+

+
Overrides:
tostring in class LuaValue
+
+
+ +
Returns:
this if it is a LuaString or LuaNumber, + otherwise LuaValue.NIL
See Also:
LuaValue.tonumber(), +LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkstring(), +LuaValue.toString()
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(java.lang.String defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a string or number and return as Java String +

+

+
Overrides:
optjstring in class LuaValue
+
+
+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to String if a string or number, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.tojstring(), +LuaValue.optstring(LuaString), +LuaValue.checkjstring(), +LuaValue.toString(), +LuaValue.TSTRING
+
+
+
+ +

+strvalue

+
+public LuaString strvalue()
+
+
Description copied from class: LuaValue
+
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +

+

+
Overrides:
strvalue in class LuaValue
+
+
+ +
Returns:
LuaString corresponding to the value if a string or number
+
+
+
+ +

+substring

+
+public LuaString substring(int beginIndex,
+                           int endIndex)
+
+
Take a substring using Java zero-based indexes for begin and end or range. +

+

+
Parameters:
beginIndex - The zero-based index of the first character to include.
endIndex - The zero-based index of position after the last character. +
Returns:
LuaString which is a substring whose first character is at offset + beginIndex and extending for (endIndex - beginIndex ) characters.
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public static int hashCode(byte[] bytes,
+                           int offset,
+                           int length)
+
+
Compute the hash code of a sequence of bytes within a byte array using + lua's rules for string hashes. For long strings, not all bytes are hashed. +

+

+
Parameters:
bytes - byte array containing the bytes.
offset - offset into the hash for the first byte.
length - number of bytes starting with offset that are part of the string. +
Returns:
hash for the string defined by bytes, offset, and length.
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
+
Overrides:
equals in class LuaValue
+
+
+
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +

+

+
Overrides:
eq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
LuaValue.TRUE if values are comparable and (this == rhs), + LuaValue.FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
LuaValue.eq_b(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +

+

+
Overrides:
eq_b in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq_b(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with another value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if (this == rhs), false otherwise
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaUserdata), +LuaValue.raweq(LuaString), +LuaValue.raweq(double), +LuaValue.raweq(int), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaString s)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a LuaString value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
s - The LuaString to compare with. +
Returns:
true if this is a LuaString + and their byte sequences match, + otherwise false
+
+
+
+ +

+equals

+
+public static boolean equals(LuaString a,
+                             int i,
+                             LuaString b,
+                             int j,
+                             int n)
+
+
+
+
+
+
+ +

+equals

+
+public static boolean equals(byte[] a,
+                             int i,
+                             byte[] b,
+                             int j,
+                             int n)
+
+
+
+
+
+
+ +

+write

+
+public void write(java.io.DataOutputStream writer,
+                  int i,
+                  int len)
+           throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+len

+
+public LuaValue len()
+
+
Description copied from class: LuaValue
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+
Overrides:
len in class LuaValue
+
+
+ +
Returns:
length as defined by the lua # operator + or metatag processing result
+
+
+
+ +

+length

+
+public int length()
+
+
Description copied from class: LuaValue
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+
Overrides:
length in class LuaValue
+
+
+ +
Returns:
length as defined by the lua # operator + or metatag processing result converted to java int using LuaValue.toint()
+
+
+
+ +

+rawlen

+
+public int rawlen()
+
+
Description copied from class: LuaValue
+
Get raw length of table or string without metatag processing. +

+

+
Overrides:
rawlen in class LuaValue
+
+
+ +
Returns:
the length of the table or string.
+
+
+
+ +

+luaByte

+
+public int luaByte(int index)
+
+
+
+
+
+
+ +

+charAt

+
+public int charAt(int index)
+
+
+
+
+
+
+ +

+checkjstring

+
+public java.lang.String checkjstring()
+
+
Description copied from class: LuaValue
+
Convert this value to a Java String. +

+ The string representations here will roughly match what is produced by the + C lua distribution, however hash codes have no relationship, + and there may be differences in number formatting. +

+

+
Overrides:
checkjstring in class LuaValue
+
+
+ +
Returns:
String representation of the value
See Also:
LuaValue.checkstring(), +LuaValue.optjstring(String), +LuaValue.tojstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+checkstring

+
+public LuaString checkstring()
+
+
Description copied from class: LuaValue
+
Check that this is a lua string, or throw LuaError if it is not. +

+ In lua all numbers are strings, so this will succeed for + anything that derives from LuaString or LuaNumber. + Numbers will be converted to LuaString. +

+

+
Overrides:
checkstring in class LuaValue
+
+
+ +
Returns:
LuaString representation of the value if it is a LuaString or LuaNumber
See Also:
LuaValue.checkjstring(), +LuaValue.optstring(LuaString), +LuaValue.tostring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+toInputStream

+
+public java.io.InputStream toInputStream()
+
+
Convert value to an input stream. +

+

+ +
Returns:
InputStream whose data matches the bytes in this LuaString
+
+
+
+ +

+copyInto

+
+public void copyInto(int strOffset,
+                     byte[] bytes,
+                     int arrayOffset,
+                     int len)
+
+
Copy the bytes of the string into the given byte array. +

+

+
Parameters:
strOffset - offset from which to copy
bytes - destination byte array
arrayOffset - offset in destination
len - number of bytes to copy
+
+
+
+ +

+indexOfAny

+
+public int indexOfAny(LuaString accept)
+
+
Java version of strpbrk - find index of any byte that in an accept string. +

+

+
Parameters:
accept - LuaString containing characters to look for. +
Returns:
index of first match in the accept string, or -1 if not found.
+
+
+
+ +

+indexOf

+
+public int indexOf(byte b,
+                   int start)
+
+
Find the index of a byte starting at a point in this string +

+

+
Parameters:
b - the byte to look for
start - the first index in the string +
Returns:
index of first match found, or -1 if not found.
+
+
+
+ +

+indexOf

+
+public int indexOf(LuaString s,
+                   int start)
+
+
Find the index of a string starting at a point in this string +

+

+
Parameters:
s - the string to search for
start - the first index in the string +
Returns:
index of first match found, or -1 if not found.
+
+
+
+ +

+lastIndexOf

+
+public int lastIndexOf(LuaString s)
+
+
Find the last index of a string in this string +

+

+
Parameters:
s - the string to search for +
Returns:
index of last match found, or -1 if not found.
+
+
+
+ +

+decodeAsUtf8

+
+public static java.lang.String decodeAsUtf8(byte[] bytes,
+                                            int offset,
+                                            int length)
+
+
Convert to Java String interpreting as utf8 characters. +

+

+
Parameters:
bytes - byte array in UTF8 encoding to convert
offset - starting index in byte array
length - number of bytes to convert +
Returns:
Java String corresponding to the value of bytes interpreted using UTF8
See Also:
lengthAsUtf8(char[]), +encodeToUtf8(char[], int, byte[], int), +isValidUtf8()
+
+
+
+ +

+lengthAsUtf8

+
+public static int lengthAsUtf8(char[] chars)
+
+
Count the number of bytes required to encode the string as UTF-8. +

+

+
Parameters:
chars - Array of unicode characters to be encoded as UTF-8 +
Returns:
count of bytes needed to encode using UTF-8
See Also:
encodeToUtf8(char[], int, byte[], int), +decodeAsUtf8(byte[], int, int), +isValidUtf8()
+
+
+
+ +

+encodeToUtf8

+
+public static int encodeToUtf8(char[] chars,
+                               int nchars,
+                               byte[] bytes,
+                               int off)
+
+
Encode the given Java string as UTF-8 bytes, writing the result to bytes + starting at offset. +

+ The string should be measured first with lengthAsUtf8 + to make sure the given byte array is large enough. +

+

+
Parameters:
chars - Array of unicode characters to be encoded as UTF-8
nchars - Number of characters in the array to convert.
bytes - byte array to hold the result
off - offset into the byte array to start writing +
Returns:
number of bytes converted.
See Also:
lengthAsUtf8(char[]), +decodeAsUtf8(byte[], int, int), +isValidUtf8()
+
+
+
+ +

+isValidUtf8

+
+public boolean isValidUtf8()
+
+
Check that a byte sequence is valid UTF-8 +

+

+ +
Returns:
true if it is valid UTF-8, otherwise false
See Also:
lengthAsUtf8(char[]), +encodeToUtf8(char[], int, byte[], int), +decodeAsUtf8(byte[], int, int)
+
+
+
+ +

+tonumber

+
+public LuaValue tonumber()
+
+
convert to a number using baee 10 or base 16 if it starts with '0x', + or NIL if it can't be converted +

+

+
Overrides:
tonumber in class LuaValue
+
+
+ +
Returns:
IntValue, DoubleValue, or NIL depending on the content of the string.
See Also:
LuaValue.tonumber()
+
+
+
+ +

+tonumber

+
+public LuaValue tonumber(int base)
+
+
convert to a number using a supplied base, or NIL if it can't be converted +

+

+
Parameters:
base - the base to use, such as 10 +
Returns:
IntValue, DoubleValue, or NIL depending on the content of the string.
See Also:
LuaValue.tonumber()
+
+
+
+ +

+scannumber

+
+public double scannumber()
+
+
Convert to a number in base 10, or base 16 if the string starts with '0x', + or return Double.NaN if it cannot be converted to a number. +

+

+ +
Returns:
double value if conversion is valid, or Double.NaN if not
+
+
+
+ +

+scannumber

+
+public double scannumber(int base)
+
+
Convert to a number in a base, or return Double.NaN if not a number. +

+

+
Parameters:
base - the base to use between 2 and 36 +
Returns:
double value if conversion is valid, or Double.NaN if not
+
+
+
+ +

+printToStream

+
+public void printToStream(java.io.PrintStream ps)
+
+
Print the bytes of the LuaString to a PrintStream as if it were + an ASCII string, quoting and escaping control characters. +

+

+
Parameters:
ps - PrintStream to print to.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaTable.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaTable.html new file mode 100644 index 000000000..1a21a2aa9 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaTable.html @@ -0,0 +1,1786 @@ + + + + + + +LuaTable (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaTable

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaTable
+
+
+
Direct Known Subclasses:
Globals
+
+
+
+
public class LuaTable
extends LuaValue
+ + +

+Subclass of LuaValue for representing lua tables. +

+ Almost all API's implemented in LuaTable are defined and documented in LuaValue. +

+ If a table is needed, the one of the type-checking functions can be used such as + istable(), + checktable(), or + opttable(LuaTable) +

+ The main table operations are defined on LuaValue + for getting and setting values with and without metatag processing: +

+

+ To iterate over key-value pairs from Java, use +

 LuaValue k = LuaValue.NIL;
+ while ( true ) {
+    Varargs n = table.next(k);
+    if ( (k = n.arg1()).isnil() )
+       break;
+    LuaValue v = n.arg(2)
+    process( k, v )
+ }
+ +

+ As with other types, LuaTable instances should be constructed via one of the table constructor + methods on LuaValue: +

+

+ +

+

+
See Also:
LuaValue
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  LuaValue[]array + +
+          the array values
+protected  org.luaj.vm2.LuaTable.Slot[]hash + +
+          the hash part
+protected  inthashEntries + +
+          the number of hash entries
+protected  org.luaj.vm2.Metatablem_metatable + +
+          metatable for this table, or null
+ + + + + + + +
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
LuaTable() + +
+          Construct empty table
LuaTable(int narray, + int nhash) + +
+          Construct table with preset capacity.
LuaTable(LuaValue[] named, + LuaValue[] unnamed, + Varargs lastarg) + +
+          Construct table with named and unnamed parts.
LuaTable(Varargs varargs) + +
+          Construct table of unnamed elements.
LuaTable(Varargs varargs, + int firstarg) + +
+          Construct table of unnamed elements.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuearrayget(LuaValue[] array, + int index) + +
+          Returns the value at the given index in the array, or null if it is a weak reference that + has been dropped.
+ LuaTablechecktable() + +
+          Check that this is a LuaTable, or throw LuaError if it is not
+ LuaValueconcat(LuaString sep, + int i, + int j) + +
+          Concatenate the contents of a table efficiently, using Buffer
+protected static org.luaj.vm2.LuaTable.EntrydefaultEntry(LuaValue key, + LuaValue value) + +
+           
+ org.luaj.vm2.LuaTable.Slotentry(LuaValue key, + LuaValue value) + +
+          Return an instance of Slot appropriate for the given key and value.
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ.
+ LuaValueget(int key) + +
+          Get a value in a table including metatag processing using LuaValue.INDEX.
+ LuaValueget(LuaValue key) + +
+          Get a value in a table including metatag processing using LuaValue.INDEX.
+protected  intgetArrayLength() + +
+          Get the length of the array part of the table.
+protected  intgetHashLength() + +
+          Get the length of the hash part of the table.
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+protected  LuaValuehashget(LuaValue key) + +
+           
+static inthashmod(int hashCode, + int mask) + +
+           
+static inthashpow2(int hashCode, + int mask) + +
+           
+ voidhashset(LuaValue key, + LuaValue value) + +
+          Set a hashtable value
+static inthashSlot(LuaValue key, + int hashMask) + +
+          Find the hashtable slot index to use.
+ Varargsinext(LuaValue key) + +
+          Get the next element after a particular key in the + contiguous array part of a table
+ voidinsert(int pos, + LuaValue value) + +
+          Insert an element at a position in a list-table
+protected static booleanisLargeKey(LuaValue key) + +
+           
+ booleanistable() + +
+          Check if this is a table
+ intkeyCount() + +
+          This may be deprecated in a future release.
+ LuaValue[]keys() + +
+          This may be deprecated in a future release.
+ LuaValuelen() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+ intlength() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+ Varargsnext(LuaValue key) + +
+          Get the next element after a particular key in the table
+ LuaTableopttable(LuaTable defval) + +
+          Check that optional argument is a table and return as LuaTable
+ voidpresize(int narray) + +
+          Preallocate the array part of a table to be a certain size,
+ voidpresize(int narray, + int nhash) + +
+           
+ LuaValuerawget(int key) + +
+          Get a value in a table without metatag processing.
+ LuaValuerawget(LuaValue key) + +
+          Get a value in a table without metatag processing.
+ intrawlen() + +
+          Get raw length of table or string without metatag processing.
+ voidrawset(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(LuaValue key, + LuaValue value) + +
+          caller must ensure key is not nil
+ LuaValueremove(int pos) + +
+          Remove the element at a position in a list-table
+ voidset(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing using LuaValue.NEWINDEX.
+ voidset(LuaValue key, + LuaValue value) + +
+          caller must ensure key is not nil
+ LuaValuesetmetatable(LuaValue metatable) + +
+          Set the metatable for this LuaValue
+ voidsort(LuaValue comparator) + +
+          Sort the table using a comparator.
+ LuaValuetoLuaValue() + +
+          Return this metatable as a LuaValue.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ Varargsunpack() + +
+          Unpack all the elements of this table
+ Varargsunpack(int i) + +
+          Unpack all the elements of this table from element i
+ Varargsunpack(int i, + int j) + +
+          Unpack the elements from i to j inclusive
+ booleanuseWeakKeys() + +
+          Return whether or not this table's keys are weak.
+ booleanuseWeakValues() + +
+          Return whether or not this table's values are weak.
+ LuaValuewrap(LuaValue value) + +
+          Returns the given value wrapped in a weak reference if appropriate.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eqmtcall, equals, error, get, gettable, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, illegal, initupvalue1, invoke, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnil, isnumber, isstring, isthread, isuserdata, isuserdata, isvalidkey, lenerror, 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, not, onInvoke, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, raweq, raweq, raweq, raweq, raweq, rawget, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, settable, strcmp, strcmp, strongvalue, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+array

+
+protected LuaValue[] array
+
+
the array values +

+

+
+
+
+ +

+hash

+
+protected org.luaj.vm2.LuaTable.Slot[] hash
+
+
the hash part +

+

+
+
+
+ +

+hashEntries

+
+protected int hashEntries
+
+
the number of hash entries +

+

+
+
+
+ +

+m_metatable

+
+protected org.luaj.vm2.Metatable m_metatable
+
+
metatable for this table, or null +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaTable

+
+public LuaTable()
+
+
Construct empty table +

+

+
+ +

+LuaTable

+
+public LuaTable(int narray,
+                int nhash)
+
+
Construct table with preset capacity. +

+

+
Parameters:
narray - capacity of array part
nhash - capacity of hash part
+
+
+ +

+LuaTable

+
+public LuaTable(LuaValue[] named,
+                LuaValue[] unnamed,
+                Varargs lastarg)
+
+
Construct table with named and unnamed parts. +

+

+
Parameters:
named - Named elements in order key-a, value-a, key-b, value-b, ...
unnamed - Unnamed elements in order value-1, value-2, ...
lastarg - Additional unnamed values beyond unnamed.length
+
+
+ +

+LuaTable

+
+public LuaTable(Varargs varargs)
+
+
Construct table of unnamed elements. +

+

+
Parameters:
varargs - Unnamed elements in order value-1, value-2, ...
+
+
+ +

+LuaTable

+
+public LuaTable(Varargs varargs,
+                int firstarg)
+
+
Construct table of unnamed elements. +

+

+
Parameters:
varargs - Unnamed elements in order value-1, value-2, ...
firstarg - the index in varargs of the first argument to include in the table
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+istable

+
+public boolean istable()
+
+
Description copied from class: LuaValue
+
Check if this is a table +

+

+
Overrides:
istable in class LuaValue
+
+
+ +
Returns:
true if this is a table, otherwise false
See Also:
LuaValue.checktable(), +LuaValue.opttable(LuaTable), +LuaValue.TTABLE
+
+
+
+ +

+checktable

+
+public LuaTable checktable()
+
+
Description copied from class: LuaValue
+
Check that this is a LuaTable, or throw LuaError if it is not +

+

+
Overrides:
checktable in class LuaValue
+
+
+ +
Returns:
this if it is a LuaTable
See Also:
LuaValue.istable(), +LuaValue.opttable(LuaTable), +LuaValue.TTABLE
+
+
+
+ +

+opttable

+
+public LuaTable opttable(LuaTable defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a table and return as LuaTable +

+

+
Overrides:
opttable in class LuaValue
+
+
+
Parameters:
defval - LuaTable to return if this is nil or none +
Returns:
this cast to LuaTable if a table, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checktable(), +LuaValue.istable(), +LuaValue.TTABLE
+
+
+
+ +

+presize

+
+public void presize(int narray)
+
+
Description copied from class: LuaValue
+
Preallocate the array part of a table to be a certain size, +

+ Primarily used internally in response to a SETLIST bytecode. +

+

+
Overrides:
presize in class LuaValue
+
+
+
Parameters:
narray - the number of array slots to preallocate in the table.
+
+
+
+ +

+presize

+
+public void presize(int narray,
+                    int nhash)
+
+
+
+
+
+
+
+
+
+ +

+getArrayLength

+
+protected int getArrayLength()
+
+
Get the length of the array part of the table. +

+

+
+
+
+ +
Returns:
length of the array part, does not relate to count of objects in the table.
+
+
+
+ +

+getHashLength

+
+protected int getHashLength()
+
+
Get the length of the hash part of the table. +

+

+
+
+
+ +
Returns:
length of the hash part, does not relate to count of objects in the table.
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+setmetatable

+
+public LuaValue setmetatable(LuaValue metatable)
+
+
Description copied from class: LuaValue
+
Set the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, the metatable is per instance. + For all other types, there is one metatable per type that can be set directly from java +

+

+
Overrides:
setmetatable in class LuaValue
+
+
+
Parameters:
metatable - LuaValue instance to serve as the metatable, or null to reset it. +
Returns:
this to allow chaining of Java function calls
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+get

+
+public LuaValue get(int key)
+
+
Description copied from class: LuaValue
+
Get a value in a table including metatag processing using LuaValue.INDEX. +

+

+
Overrides:
get in class LuaValue
+
+
+
Parameters:
key - the key to look up +
Returns:
LuaValue for that key, or LuaValue.NIL if not found
See Also:
LuaValue.get(LuaValue), +LuaValue.rawget(int)
+
+
+
+ +

+get

+
+public LuaValue get(LuaValue key)
+
+
Description copied from class: LuaValue
+
Get a value in a table including metatag processing using LuaValue.INDEX. +

+

+
Overrides:
get in class LuaValue
+
+
+
Parameters:
key - the key to look up, must not be LuaValue.NIL or null +
Returns:
LuaValue for that key, or LuaValue.NIL if not found and no metatag
See Also:
LuaValue.get(int), +LuaValue.get(String), +LuaValue.rawget(LuaValue)
+
+
+
+ +

+rawget

+
+public LuaValue rawget(int key)
+
+
Description copied from class: LuaValue
+
Get a value in a table without metatag processing. +

+

+
Overrides:
rawget in class LuaValue
+
+
+
Parameters:
key - the key to look up +
Returns:
LuaValue for that key, or LuaValue.NIL if not found
+
+
+
+ +

+rawget

+
+public LuaValue rawget(LuaValue key)
+
+
Description copied from class: LuaValue
+
Get a value in a table without metatag processing. +

+

+
Overrides:
rawget in class LuaValue
+
+
+
Parameters:
key - the key to look up, must not be LuaValue.NIL or null +
Returns:
LuaValue for that key, or LuaValue.NIL if not found
+
+
+
+ +

+hashget

+
+protected LuaValue hashget(LuaValue key)
+
+
+
+
+
+
+
+
+
+ +

+set

+
+public void set(int key,
+                LuaValue value)
+
+
Description copied from class: LuaValue
+
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +

+

+
Overrides:
set in class LuaValue
+
+
+
Parameters:
key - the key to use
value - the value to use, can be LuaValue.NIL, must not be null
+
+
+
+ +

+set

+
+public void set(LuaValue key,
+                LuaValue value)
+
+
caller must ensure key is not nil +

+

+
Overrides:
set in class LuaValue
+
+
+
Parameters:
key - the key to use, must not be LuaValue.NIL or null
value - the value to use, can be LuaValue.NIL, must not be null
+
+
+
+ +

+rawset

+
+public void rawset(int key,
+                   LuaValue value)
+
+
Description copied from class: LuaValue
+
Set a value in a table without metatag processing. +

+

+
Overrides:
rawset in class LuaValue
+
+
+
Parameters:
key - the key to use
value - the value to use, can be LuaValue.NIL, must not be null
+
+
+
+ +

+rawset

+
+public void rawset(LuaValue key,
+                   LuaValue value)
+
+
caller must ensure key is not nil +

+

+
Overrides:
rawset in class LuaValue
+
+
+
Parameters:
key - the key to use, must not be LuaValue.NIL or null
value - the value to use, can be LuaValue.NIL, must not be null
+
+
+
+ +

+remove

+
+public LuaValue remove(int pos)
+
+
Remove the element at a position in a list-table +

+

+
+
+
+
Parameters:
pos - the position to remove +
Returns:
The removed item, or LuaValue.NONE if not removed
+
+
+
+ +

+insert

+
+public void insert(int pos,
+                   LuaValue value)
+
+
Insert an element at a position in a list-table +

+

+
+
+
+
Parameters:
pos - the position to remove
value - The value to insert
+
+
+
+ +

+concat

+
+public LuaValue concat(LuaString sep,
+                       int i,
+                       int j)
+
+
Concatenate the contents of a table efficiently, using Buffer +

+

+
+
+
+
Parameters:
sep - LuaString separater to apply between elements
i - the first element index
j - the last element index, inclusive +
Returns:
LuaString value of the concatenation
+
+
+
+ +

+length

+
+public int length()
+
+
Description copied from class: LuaValue
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+
Overrides:
length in class LuaValue
+
+
+ +
Returns:
length as defined by the lua # operator + or metatag processing result converted to java int using LuaValue.toint()
+
+
+
+ +

+len

+
+public LuaValue len()
+
+
Description copied from class: LuaValue
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+
Overrides:
len in class LuaValue
+
+
+ +
Returns:
length as defined by the lua # operator + or metatag processing result
+
+
+
+ +

+rawlen

+
+public int rawlen()
+
+
Description copied from class: LuaValue
+
Get raw length of table or string without metatag processing. +

+

+
Overrides:
rawlen in class LuaValue
+
+
+ +
Returns:
the length of the table or string.
+
+
+
+ +

+next

+
+public Varargs next(LuaValue key)
+
+
Get the next element after a particular key in the table +

+

+
Overrides:
next in class LuaValue
+
+
+
Parameters:
key - LuaInteger value identifying a key to start from, + or LuaValue.NIL to start at the beginning +
Returns:
key,value or nil
See Also:
LuaTable, +LuaValue.inext(LuaValue), +LuaValue.valueOf(int), +Varargs.arg1(), +Varargs.arg(int), +LuaValue.isnil()
+
+
+
+ +

+inext

+
+public Varargs inext(LuaValue key)
+
+
Get the next element after a particular key in the + contiguous array part of a table +

+

+
Overrides:
inext in class LuaValue
+
+
+
Parameters:
key - LuaInteger value identifying a key to start from, + or LuaValue.NIL to start at the beginning +
Returns:
key,value or none
See Also:
LuaTable, +LuaValue.next(LuaValue), +LuaValue.valueOf(int), +Varargs.arg1(), +Varargs.arg(int), +LuaValue.isnil()
+
+
+
+ +

+hashset

+
+public void hashset(LuaValue key,
+                    LuaValue value)
+
+
Set a hashtable value +

+

+
+
+
+
Parameters:
key - key to set
value - value to set
+
+
+
+ +

+hashpow2

+
+public static int hashpow2(int hashCode,
+                           int mask)
+
+
+
+
+
+
+
+
+
+ +

+hashmod

+
+public static int hashmod(int hashCode,
+                          int mask)
+
+
+
+
+
+
+
+
+
+ +

+hashSlot

+
+public static int hashSlot(LuaValue key,
+                           int hashMask)
+
+
Find the hashtable slot index to use. +

+

+
+
+
+
Parameters:
key - the key to look for
hashMask - N-1 where N is the number of hash slots (must be power of 2) +
Returns:
the slot index
+
+
+
+ +

+entry

+
+public org.luaj.vm2.LuaTable.Slot entry(LuaValue key,
+                                        LuaValue value)
+
+
Return an instance of Slot appropriate for the given key and value. +

+

+
+
+
+
+
+
+
+ +

+isLargeKey

+
+protected static boolean isLargeKey(LuaValue key)
+
+
+
+
+
+
+
+
+
+ +

+defaultEntry

+
+protected static org.luaj.vm2.LuaTable.Entry defaultEntry(LuaValue key,
+                                                          LuaValue value)
+
+
+
+
+
+
+
+
+
+ +

+sort

+
+public void sort(LuaValue comparator)
+
+
Sort the table using a comparator. +

+

+
+
+
+
Parameters:
comparator - LuaValue to be called to compare elements.
+
+
+
+ +

+keyCount

+
+public int keyCount()
+
+
This may be deprecated in a future release. + It is recommended to count via iteration over next() instead +

+

+
+
+
+ +
Returns:
count of keys in the table
+
+
+
+ +

+keys

+
+public LuaValue[] keys()
+
+
This may be deprecated in a future release. + It is recommended to use next() instead +

+

+
+
+
+ +
Returns:
array of keys in the table
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +

+

+
Overrides:
eq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
LuaValue.TRUE if values are comparable and (this == rhs), + LuaValue.FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
LuaValue.eq_b(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +

+

+
Overrides:
eq_b in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq_b(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+unpack

+
+public Varargs unpack()
+
+
Unpack all the elements of this table +

+

+
+
+
+
+
+
+
+ +

+unpack

+
+public Varargs unpack(int i)
+
+
Unpack all the elements of this table from element i +

+

+
+
+
+
+
+
+
+ +

+unpack

+
+public Varargs unpack(int i,
+                      int j)
+
+
Unpack the elements from i to j inclusive +

+

+
+
+
+
+
+
+
+ +

+useWeakKeys

+
+public boolean useWeakKeys()
+
+
Return whether or not this table's keys are weak. +

+

+
+
+
+
+
+
+
+ +

+useWeakValues

+
+public boolean useWeakValues()
+
+
Return whether or not this table's values are weak. +

+

+
+
+
+
+
+
+
+ +

+toLuaValue

+
+public LuaValue toLuaValue()
+
+
Return this metatable as a LuaValue. +

+

+
+
+
+
+
+
+
+ +

+wrap

+
+public LuaValue wrap(LuaValue value)
+
+
Returns the given value wrapped in a weak reference if appropriate. +

+

+
+
+
+
+
+
+
+ +

+arrayget

+
+public LuaValue arrayget(LuaValue[] array,
+                         int index)
+
+
Returns the value at the given index in the array, or null if it is a weak reference that + has been dropped. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.State.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.State.html new file mode 100644 index 000000000..2ca45028d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.State.html @@ -0,0 +1,474 @@ + + + + + + +LuaThread.State (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaThread.State

+
+java.lang.Object
+  extended by org.luaj.vm2.LuaThread.State
+
+
+
All Implemented Interfaces:
java.lang.Runnable
+
+
+
Enclosing class:
LuaThread
+
+
+
+
public static class LuaThread.State
extends java.lang.Object
implements java.lang.Runnable
+ + +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ intbytecodes + +
+           
+ LuaValuefunction + +
+           
+ booleanhookcall + +
+           
+ inthookcount + +
+           
+ LuaValuehookfunc + +
+          Hook function control state used by debug lib.
+ booleanhookline + +
+           
+ booleanhookrtrn + +
+           
+ booleaninhook + +
+           
+ intlastline + +
+           
+ intstatus + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ Varargslua_resume(LuaThread new_thread, + Varargs args) + +
+           
+ Varargslua_yield(Varargs args) + +
+           
+ voidrun() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+function

+
+public final LuaValue function
+
+
+
+
+
+ +

+hookfunc

+
+public LuaValue hookfunc
+
+
Hook function control state used by debug lib. +

+

+
+
+
+ +

+hookline

+
+public boolean hookline
+
+
+
+
+
+ +

+hookcall

+
+public boolean hookcall
+
+
+
+
+
+ +

+hookrtrn

+
+public boolean hookrtrn
+
+
+
+
+
+ +

+hookcount

+
+public int hookcount
+
+
+
+
+
+ +

+inhook

+
+public boolean inhook
+
+
+
+
+
+ +

+lastline

+
+public int lastline
+
+
+
+
+
+ +

+bytecodes

+
+public int bytecodes
+
+
+
+
+
+ +

+status

+
+public int status
+
+
+
+
+ + + + + + + + +
+Method Detail
+ +

+run

+
+public void run()
+
+
+
Specified by:
run in interface java.lang.Runnable
+
+
+
+
+
+
+ +

+lua_resume

+
+public Varargs lua_resume(LuaThread new_thread,
+                          Varargs args)
+
+
+
+
+
+
+
+
+
+ +

+lua_yield

+
+public Varargs lua_yield(Varargs args)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.html new file mode 100644 index 000000000..3450b3ed4 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaThread.html @@ -0,0 +1,871 @@ + + + + + + +LuaThread (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaThread

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaThread
+
+
+
+
public class LuaThread
extends LuaValue
+ + +

+Subclass of LuaValue that implements + a lua coroutine thread using Java Threads. +

+ A LuaThread is typically created in response to a scripted call to + coroutine.create() +

+ The threads must be initialized with the globals, so that + the global environment may be passed along according to rules of lua. + This is done via the constructor arguments LuaThread(Globals) or + LuaThread(Globals, LuaValue). +

+ The utility classes JsePlatform and + JmePlatform + see to it that this Globals are initialized properly. +

+ The behavior of coroutine threads matches closely the behavior + of C coroutine library. However, because of the use of Java threads + to manage call state, it is possible to yield from anywhere in luaj. +

+ Each Java thread wakes up at regular intervals and checks a weak reference + to determine if it can ever be resumed. If not, it throws + OrphanedThread which is an Error. + Applications should not catch OrphanedThread, because it can break + the thread safety of luaj. The value controlling the polling interval + is thread_orphan_check_interval and may be set by the user. +

+ There are two main ways to abandon a coroutine. The first is to call + yield() from lua, or equivalently Globals.yield(Varargs), + and arrange to have it never resumed possibly by values passed to yield. + The second is to throw OrphanedThread, which should put the thread + in a dead state. In either case all references to the thread must be + dropped, and the garbage collector must run for the thread to be + garbage collected. +

+ +

+

+
See Also:
LuaValue, +JsePlatform, +JmePlatform, +CoroutineLib
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classLuaThread.State + +
+           
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ java.lang.Objectcallstack + +
+          Thread-local used by DebugLib to store debugging state.
+static intcoroutine_count + +
+          The current number of coroutines.
+ LuaValueerrorfunc + +
+          Error message handler for this thread, if any.
+ Globalsglobals + +
+           
+static intMAX_CALLSTACK + +
+           
+static LuaValues_metatable + +
+          Shared metatable for lua threads.
+ LuaThread.Statestate + +
+           
+static intSTATUS_DEAD + +
+           
+static intSTATUS_INITIAL + +
+           
+static java.lang.String[]STATUS_NAMES + +
+           
+static intSTATUS_NORMAL + +
+           
+static intSTATUS_RUNNING + +
+           
+static intSTATUS_SUSPENDED + +
+           
+static longthread_orphan_check_interval + +
+          Polling interval, in milliseconds, which each thread uses while waiting to + return from a yielded state to check if the lua threads is no longer + referenced and therefore should be garbage collected.
+ + + + + + + +
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
LuaThread(Globals globals) + +
+          Private constructor for main thread only
LuaThread(Globals globals, + LuaValue func) + +
+          Create a LuaThread around a function and environment
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaThreadcheckthread() + +
+          Check that this is a LuaThread, or throw LuaError if it is not
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ java.lang.StringgetStatus() + +
+           
+ booleanisMainThread() + +
+           
+ booleanisthread() + +
+          Check if this is a thread
+ LuaThreadoptthread(LuaThread defval) + +
+          Check that optional argument is a thread and return as LuaThread
+ Varargsresume(Varargs args) + +
+           
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnil, isnumber, isstring, istable, 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, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, 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, strvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, 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
+  +

+ + + + + + + + +
+Field Detail
+ +

+s_metatable

+
+public static LuaValue s_metatable
+
+
Shared metatable for lua threads. +

+

+
+
+
+ +

+coroutine_count

+
+public static int coroutine_count
+
+
The current number of coroutines. Should not be set. +

+

+
+
+
+ +

+thread_orphan_check_interval

+
+public static long thread_orphan_check_interval
+
+
Polling interval, in milliseconds, which each thread uses while waiting to + return from a yielded state to check if the lua threads is no longer + referenced and therefore should be garbage collected. + A short polling interval for many threads will consume server resources. + Orphaned threads cannot be detected and collected unless garbage + collection is run. This can be changed by Java startup code if desired. +

+

+
+
+
+ +

+STATUS_INITIAL

+
+public static final int STATUS_INITIAL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+STATUS_SUSPENDED

+
+public static final int STATUS_SUSPENDED
+
+
+
See Also:
Constant Field Values
+
+
+ +

+STATUS_RUNNING

+
+public static final int STATUS_RUNNING
+
+
+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NORMAL

+
+public static final int STATUS_NORMAL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+STATUS_DEAD

+
+public static final int STATUS_DEAD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NAMES

+
+public static final java.lang.String[] STATUS_NAMES
+
+
+
+
+
+ +

+state

+
+public final LuaThread.State state
+
+
+
+
+
+ +

+MAX_CALLSTACK

+
+public static final int MAX_CALLSTACK
+
+
+
See Also:
Constant Field Values
+
+
+ +

+callstack

+
+public java.lang.Object callstack
+
+
Thread-local used by DebugLib to store debugging state. + This is an opaque value that should not be modified by applications. +

+

+
+
+
+ +

+globals

+
+public final Globals globals
+
+
+
+
+
+ +

+errorfunc

+
+public LuaValue errorfunc
+
+
Error message handler for this thread, if any. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaThread

+
+public LuaThread(Globals globals)
+
+
Private constructor for main thread only +

+

+
+ +

+LuaThread

+
+public LuaThread(Globals globals,
+                 LuaValue func)
+
+
Create a LuaThread around a function and environment +

+

+
Parameters:
func - The function to execute
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+isthread

+
+public boolean isthread()
+
+
Description copied from class: LuaValue
+
Check if this is a thread +

+

+
Overrides:
isthread in class LuaValue
+
+
+ +
Returns:
true if this is a thread, otherwise false
See Also:
LuaValue.checkthread(), +LuaValue.optthread(LuaThread), +LuaValue.TTHREAD
+
+
+
+ +

+optthread

+
+public LuaThread optthread(LuaThread defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a thread and return as LuaThread +

+

+
Overrides:
optthread in class LuaValue
+
+
+
Parameters:
defval - LuaThread to return if this is nil or none +
Returns:
this cast to LuaTable if a thread, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkthread(), +LuaValue.isthread(), +LuaValue.TTHREAD
+
+
+
+ +

+checkthread

+
+public LuaThread checkthread()
+
+
Description copied from class: LuaValue
+
Check that this is a LuaThread, or throw LuaError if it is not +

+

+
Overrides:
checkthread in class LuaValue
+
+
+ +
Returns:
this if it is a LuaThread
See Also:
LuaValue.isthread(), +LuaValue.optthread(LuaThread), +LuaValue.TTHREAD
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +s_metatable
+
+
+
+ +

+getStatus

+
+public java.lang.String getStatus()
+
+
+
+
+
+
+ +

+isMainThread

+
+public boolean isMainThread()
+
+
+
+
+
+
+ +

+resume

+
+public Varargs resume(Varargs args)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaUserdata.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaUserdata.html new file mode 100644 index 000000000..28ec61de7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaUserdata.html @@ -0,0 +1,1010 @@ + + + + + + +LuaUserdata (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaUserdata

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaUserdata
+
+
+
+
public class LuaUserdata
extends LuaValue
+ + +

+


+ +

+ + + + + + + + + + + + + + + +
+Field Summary
+ java.lang.Objectm_instance + +
+           
+ LuaValuem_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
LuaUserdata(java.lang.Object obj) + +
+           
LuaUserdata(java.lang.Object obj, + LuaValue metatable) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectcheckuserdata() + +
+          Check that this is a LuaUserdata, or throw LuaError if it is not
+ java.lang.Objectcheckuserdata(java.lang.Class c) + +
+          Check that this is a LuaUserdata, or throw LuaError if it is not
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ.
+ booleaneqmt(LuaValue val) + +
+           
+ booleanequals(java.lang.Object val) + +
+           
+ LuaValueget(LuaValue key) + +
+          Get a value in a table including metatag processing using LuaValue.INDEX.
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+ inthashCode() + +
+           
+ booleanisuserdata() + +
+          Check if this is a userdata
+ booleanisuserdata(java.lang.Class c) + +
+          Check if this is a userdata of type c
+ java.lang.Objectoptuserdata(java.lang.Class c, + java.lang.Object defval) + +
+          Check that optional argument is a userdata whose instance is of a type + and return the Object instance
+ java.lang.Objectoptuserdata(java.lang.Object defval) + +
+          Check that optional argument is a userdata and return the Object instance
+ booleanraweq(LuaUserdata val) + +
+          Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing.
+ booleanraweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ voidset(LuaValue key, + LuaValue value) + +
+          Set a value in a table without metatag processing using LuaValue.NEWINDEX.
+ LuaValuesetmetatable(LuaValue metatable) + +
+          Set the metatable for this LuaValue
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ java.lang.Objecttouserdata() + +
+          Convert to userdata instance, or null.
+ java.lang.Objecttouserdata(java.lang.Class c) + +
+          Convert to userdata instance if specific type, or null.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+ java.lang.Objectuserdata() + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eqmtcall, error, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, isint, isinttype, islong, isnil, isnumber, isstring, istable, isthread, 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, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optvalue, or, pow, pow, pow, powWith, powWith, presize, raweq, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, settable, strcmp, strcmp, strongvalue, strvalue, 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, 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, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+m_instance

+
+public java.lang.Object m_instance
+
+
+
+
+
+ +

+m_metatable

+
+public LuaValue m_metatable
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaUserdata

+
+public LuaUserdata(java.lang.Object obj)
+
+
+
+ +

+LuaUserdata

+
+public LuaUserdata(java.lang.Object obj,
+                   LuaValue metatable)
+
+
+ + + + + + + + +
+Method Detail
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+
+ +

+userdata

+
+public java.lang.Object userdata()
+
+
+
+
+
+
+ +

+isuserdata

+
+public boolean isuserdata()
+
+
Description copied from class: LuaValue
+
Check if this is a userdata +

+

+
Overrides:
isuserdata in class LuaValue
+
+
+ +
Returns:
true if this is a userdata, otherwise false
See Also:
LuaValue.isuserdata(Class), +LuaValue.touserdata(), +LuaValue.checkuserdata(), +LuaValue.optuserdata(Object), +LuaValue.TUSERDATA
+
+
+
+ +

+isuserdata

+
+public boolean isuserdata(java.lang.Class c)
+
+
Description copied from class: LuaValue
+
Check if this is a userdata of type c +

+

+
Overrides:
isuserdata in class LuaValue
+
+
+
Parameters:
c - Class to test instance against +
Returns:
true if this is a userdata + and the instance is assignable to c, + otherwise false
See Also:
LuaValue.isuserdata(), +LuaValue.touserdata(Class), +LuaValue.checkuserdata(Class), +LuaValue.optuserdata(Class, Object), +LuaValue.TUSERDATA
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata()
+
+
Description copied from class: LuaValue
+
Convert to userdata instance, or null. +

+

+
Overrides:
touserdata in class LuaValue
+
+
+ +
Returns:
userdata instance if userdata, or null if not LuaUserdata
See Also:
LuaValue.optuserdata(Object), +LuaValue.checkuserdata(), +LuaValue.isuserdata(), +LuaValue.TUSERDATA
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata(java.lang.Class c)
+
+
Description copied from class: LuaValue
+
Convert to userdata instance if specific type, or null. +

+

+
Overrides:
touserdata in class LuaValue
+
+
+ +
Returns:
userdata instance if is a userdata whose instance derives from c, + or null if not LuaUserdata
See Also:
LuaValue.optuserdata(Class,Object), +LuaValue.checkuserdata(Class), +LuaValue.isuserdata(Class), +LuaValue.TUSERDATA
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Object defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a userdata and return the Object instance +

+

+
Overrides:
optuserdata in class LuaValue
+
+
+
Parameters:
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkuserdata(), +LuaValue.isuserdata(), +LuaValue.optuserdata(Class, Object), +LuaValue.TUSERDATA
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Class c,
+                                    java.lang.Object defval)
+
+
Description copied from class: LuaValue
+
Check that optional argument is a userdata whose instance is of a type + and return the Object instance +

+

+
Overrides:
optuserdata in class LuaValue
+
+
+
Parameters:
c - Class to test userdata instance against
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata and instance is assignable to c, + defval if nil or none, + throws LuaError if some other type
See Also:
LuaValue.checkuserdata(Class), +LuaValue.isuserdata(Class), +LuaValue.optuserdata(Object), +LuaValue.TUSERDATA
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Description copied from class: LuaValue
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+
Overrides:
getmetatable in class LuaValue
+
+
+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+setmetatable

+
+public LuaValue setmetatable(LuaValue metatable)
+
+
Description copied from class: LuaValue
+
Set the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, the metatable is per instance. + For all other types, there is one metatable per type that can be set directly from java +

+

+
Overrides:
setmetatable in class LuaValue
+
+
+
Parameters:
metatable - LuaValue instance to serve as the metatable, or null to reset it. +
Returns:
this to allow chaining of Java function calls
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata()
+
+
Description copied from class: LuaValue
+
Check that this is a LuaUserdata, or throw LuaError if it is not +

+

+
Overrides:
checkuserdata in class LuaValue
+
+
+ +
Returns:
this if it is a LuaUserdata
See Also:
LuaValue.isuserdata(), +LuaValue.optuserdata(Object), +LuaValue.checkuserdata(Class), +LuaValue.TUSERDATA
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata(java.lang.Class c)
+
+
Description copied from class: LuaValue
+
Check that this is a LuaUserdata, or throw LuaError if it is not +

+

+
Overrides:
checkuserdata in class LuaValue
+
+
+ +
Returns:
this if it is a LuaUserdata
See Also:
LuaValue.isuserdata(Class), +LuaValue.optuserdata(Class, Object), +LuaValue.checkuserdata(), +LuaValue.TUSERDATA
+
+
+
+ +

+get

+
+public LuaValue get(LuaValue key)
+
+
Description copied from class: LuaValue
+
Get a value in a table including metatag processing using LuaValue.INDEX. +

+

+
Overrides:
get in class LuaValue
+
+
+
Parameters:
key - the key to look up, must not be LuaValue.NIL or null +
Returns:
LuaValue for that key, or LuaValue.NIL if not found and no metatag
See Also:
LuaValue.get(int), +LuaValue.get(String), +LuaValue.rawget(LuaValue)
+
+
+
+ +

+set

+
+public void set(LuaValue key,
+                LuaValue value)
+
+
Description copied from class: LuaValue
+
Set a value in a table without metatag processing using LuaValue.NEWINDEX. +

+

+
Overrides:
set in class LuaValue
+
+
+
Parameters:
key - the key to use, must not be LuaValue.NIL or null
value - the value to use, can be LuaValue.NIL, must not be null
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object val)
+
+
+
Overrides:
equals in class LuaValue
+
+
+
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ. +

+

+
Overrides:
eq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
LuaValue.TRUE if values are comparable and (this == rhs), + LuaValue.FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
LuaValue.eq_b(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform equality comparison with another value + including metatag processing using LuaValue.EQ, + and return java boolean +

+

+
Overrides:
eq_b in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue), +LuaValue.neq_b(LuaValue), +LuaValue.eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaValue val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with another value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The value to compare with. +
Returns:
true if (this == rhs), false otherwise
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaUserdata), +LuaValue.raweq(LuaString), +LuaValue.raweq(double), +LuaValue.raweq(int), +LuaValue.EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaUserdata val)
+
+
Description copied from class: LuaValue
+
Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing. +

+

+
Overrides:
raweq in class LuaValue
+
+
+
Parameters:
val - The LuaUserdata to compare with. +
Returns:
true if this is userdata + and their metatables are the same using == + and their instances are equal using LuaValue.equals(Object), + otherwise false
See Also:
LuaValue.eq(LuaValue), +LuaValue.raweq(LuaValue)
+
+
+
+ +

+eqmt

+
+public boolean eqmt(LuaValue val)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaValue.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaValue.html new file mode 100644 index 000000000..216e8ba90 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/LuaValue.html @@ -0,0 +1,8359 @@ + + + + + + +LuaValue (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class LuaValue

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+
+
+
Direct Known Subclasses:
IoLib.File, LuaBoolean, LuaFunction, LuaNil, LuaNumber, LuaString, LuaTable, LuaThread, LuaUserdata
+
+
+
+
public abstract class LuaValue
extends Varargs
+ + +

+Base class for all concrete lua type values. +

+ Establishes base implementations for all the operations on lua types. + This allows Java clients to deal essentially with one type for all Java values, namely LuaValue. +

+ Constructors are provided as static methods for common Java types, such as + valueOf(int) or valueOf(String) + to allow for instance pooling. +

+ Constants are defined for the lua values + NIL, TRUE, and FALSE. + A constant NONE is defined which is a Varargs list having no values. +

+ Operations are performed on values directly via their Java methods. + For example, the following code divides two numbers: +

 LuaValue a = LuaValue.valueOf( 5 );
+ LuaValue b = LuaValue.valueOf( 4 );
+ LuaValue c = a.div(b);
+  
+ Note that in this example, c will be a LuaDouble, but would be a LuaInteger + if the value of a were changed to 8, say. + In general the value of c in practice will vary depending on both the types and values of a and b + as well as any metatable/metatag processing that occurs. +

+ Field access and function calls are similar, with common overloads to simplify Java usage: +

 LuaValue globals = JsePlatform.standardGlobals();
+ LuaValue sqrt = globals.get("math").get("sqrt");
+ LuaValue print = globals.get("print");
+ LuaValue d = sqrt.call( a );
+ print.call( LuaValue.valueOf("sqrt(5):"), a );
+  
+

+ To supply variable arguments or get multiple return values, use + invoke(Varargs) or invokemethod(LuaValue, Varargs) methods: +

 LuaValue modf = globals.get("math").get("modf");
+ Varargs r = modf.invoke( d );
+ print.call( r.arg(1), r.arg(2) );
+  
+

+ To load and run a script, LoadState is used: +

 LoadState.load( new FileInputStream("main.lua"), "main.lua", globals ).call();
+  
+

+ although require could also be used: +

 globals.get("require").call(LuaValue.valueOf("main"));
+  
+ For this to work the file must be in the current directory, or in the class path, + dependening on the platform. + See JsePlatform and JmePlatform for details. +

+ In general a LuaError may be thrown on any operation when the + types supplied to any operation are illegal from a lua perspective. + Examples could be attempting to concatenate a NIL value, or attempting arithmetic + on values that are not number. +

+ There are several methods for preinitializing tables, such as: +

+

+ Predefined constants exist for the standard lua type constants + TNIL, TBOOLEAN, TLIGHTUSERDATA, TNUMBER, TSTRING, + TTABLE, TFUNCTION, TUSERDATA, TTHREAD, + and extended lua type constants + TINT, TNONE, TVALUE +

+ Predefined constants exist for all strings used as metatags: + INDEX, NEWINDEX, CALL, MODE, METATABLE, + ADD, SUB, DIV, MUL, POW, + MOD, UNM, LEN, EQ, LT, + LE, TOSTRING, and CONCAT. +

+ +

+

+
See Also:
JsePlatform, +JmePlatform, +LoadState, +Varargs
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static LuaStringADD + +
+          LuaString constant with value "__add" for use as metatag
+static LuaStringCALL + +
+          LuaString constant with value "__call" for use as metatag
+static LuaStringCONCAT + +
+          LuaString constant with value "__concat" for use as metatag
+static LuaStringDIV + +
+          LuaString constant with value "__div" for use as metatag
+static LuaStringEMPTYSTRING + +
+          LuaString constant with value ""
+static LuaStringENV + +
+          The variable name of the environment.
+static LuaStringEQ + +
+          LuaString constant with value "__eq" for use as metatag
+static LuaBooleanFALSE + +
+          LuaBoolean constant corresponding to lua false
+static LuaStringINDEX + +
+          LuaString constant with value "__index" for use as metatag
+static LuaStringLE + +
+          LuaString constant with value "__le" for use as metatag
+static LuaStringLEN + +
+          LuaString constant with value "__len" for use as metatag
+static LuaStringLT + +
+          LuaString constant with value "__lt" for use as metatag
+static LuaStringMETATABLE + +
+          LuaString constant with value "__metatable" for use as metatag
+static LuaNumberMINUSONE + +
+          LuaValue number constant equal to -1
+static LuaStringMOD + +
+          LuaString constant with value "__mod" for use as metatag
+static LuaStringMODE + +
+          LuaString constant with value "__mode" for use as metatag
+static LuaStringMUL + +
+          LuaString constant with value "__mul" for use as metatag
+static LuaStringNEWINDEX + +
+          LuaString constant with value "__newindex" for use as metatag
+static LuaValueNIL + +
+          LuaValue constant corresponding to lua #NIL
+static LuaValue[]NILS + +
+          Array of NIL values to optimize filling stacks using System.arraycopy().
+static LuaValueNONE + +
+          LuaValue constant corresponding to a Varargs list of no values
+static LuaValue[]NOVALS + +
+          LuaValue array constant with no values
+static LuaNumberONE + +
+          LuaValue number constant equal to 1
+static LuaStringPOW + +
+          LuaString constant with value "__pow" for use as metatag
+static LuaStringSUB + +
+          LuaString constant with value "__sub" for use as metatag
+static intTBOOLEAN + +
+          Type enumeration constant for lua booleans
+static intTFUNCTION + +
+          Type enumeration constant for lua functions
+static intTINT + +
+          Type enumeration constant for lua numbers that are ints, for compatibility with lua 5.1 number patch only
+static intTLIGHTUSERDATA + +
+          Type enumeration constant for lua light userdata, for compatibility with C-based lua only
+static intTNIL + +
+          Type enumeration constant for lua nil
+static intTNONE + +
+          Type enumeration constant for lua values that have no type, for example weak table entries
+static intTNUMBER + +
+          Type enumeration constant for lua numbers
+static LuaStringTOSTRING + +
+          LuaString constant with value "__tostring" for use as metatag
+static LuaBooleanTRUE + +
+          LuaBoolean constant corresponding to lua true
+static intTSTRING + +
+          Type enumeration constant for lua strings
+static intTTABLE + +
+          Type enumeration constant for lua tables
+static intTTHREAD + +
+          Type enumeration constant for lua threads
+static intTUSERDATA + +
+          Type enumeration constant for lua userdatas
+static intTVALUE + +
+          Type enumeration constant for unknown values, for compatibility with C-based lua only
+static java.lang.String[]TYPE_NAMES + +
+          String array constant containing names of each of the lua value types
+static LuaStringUNM + +
+          LuaString constant with value "__unm" for use as metatag
+static LuaNumberZERO + +
+          LuaValue number constant equal to 0
+  + + + + + + + + + + +
+Constructor Summary
LuaValue() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValueadd(double rhs) + +
+          Add: Perform numeric add operation with another value + of double type with metatag processing
+ LuaValueadd(int rhs) + +
+          Add: Perform numeric add operation with another value + of int type with metatag processing
+ LuaValueadd(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ LuaValueand(LuaValue rhs) + +
+          Perform boolean and with another operand, based on lua rules for boolean evaluation.
+ LuaValuearg(int index) + +
+          Get the n-th argument value (1-based).
+ LuaValuearg1() + +
+          Get the first argument in the list.
+static LuaValueargerror(int iarg, + java.lang.String msg) + +
+          Throw a LuaError indicating an invalid argument was supplied to a function
+protected  LuaValueargerror(java.lang.String expected) + +
+          Throw a LuaError indicating an invalid argument was supplied to a function
+protected  LuaValuearitherror() + +
+          Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type
+protected  LuaValuearitherror(java.lang.String fun) + +
+          Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type
+protected  LuaValuearithmt(LuaValue tag, + LuaValue op2) + +
+          Perform metatag processing for arithmetic operations.
+protected  LuaValuearithmtwith(LuaValue tag, + double op1) + +
+          Perform metatag processing for arithmetic operations when the left-hand-side is a number.
+static voidassert_(boolean b, + java.lang.String msg) + +
+          Assert a condition is true, or throw a LuaError if not + Returns no value when b is true, throws error(String) with msg as argument + and does not return if b is false.
+ Bufferbuffer() + +
+          Convert the value to a Buffer for more efficient concatenation of + multiple strings.
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(java.lang.String arg) + +
+          Convenience function which calls a luavalue with a single, string argument.
+protected  LuaValuecallmt() + +
+          Get the metatag value for the CALL metatag, if it exists.
+ booleancheckboolean() + +
+          Check that the value is a LuaBoolean, + or throw LuaError if not
+ LuaClosurecheckclosure() + +
+          Check that the value is a LuaClosure , + or throw LuaError if not
+ doublecheckdouble() + +
+          Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric
+ LuaFunctioncheckfunction() + +
+          Check that the value is a function , or throw LuaError if not
+ Globalscheckglobals() + +
+          Check that the value is a Globals instance, or throw LuaError if not
+ intcheckint() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ LuaIntegercheckinteger() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ java.lang.Stringcheckjstring() + +
+          Convert this value to a Java String.
+ longchecklong() + +
+          Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric
+protected  LuaValuecheckmetatag(LuaValue tag, + java.lang.String reason) + +
+          Get particular metatag, or throw LuaError if it doesn't exist
+ LuaValuechecknotnil() + +
+          Check that this is not the value NIL, or throw LuaError if it is
+ LuaNumberchecknumber() + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaNumberchecknumber(java.lang.String msg) + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaStringcheckstring() + +
+          Check that this is a lua string, or throw LuaError if it is not.
+ LuaTablechecktable() + +
+          Check that this is a LuaTable, or throw LuaError if it is not
+ LuaThreadcheckthread() + +
+          Check that this is a LuaThread, or throw LuaError if it is not
+ java.lang.Objectcheckuserdata() + +
+          Check that this is a LuaUserdata, or throw LuaError if it is not
+ java.lang.Objectcheckuserdata(java.lang.Class c) + +
+          Check that this is a LuaUserdata, or throw LuaError if it is not
+protected  LuaValuecompareerror(LuaValue rhs) + +
+          Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type
+protected  LuaValuecompareerror(java.lang.String rhs) + +
+          Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type
+ LuaValuecomparemt(LuaValue tag, + LuaValue op1) + +
+          Perform metatag processing for comparison operations.
+ Bufferconcat(Buffer rhs) + +
+          Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcat(LuaValue rhs) + +
+          Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueconcatmt(LuaValue rhs) + +
+          Perform metatag processing for concatenation operations.
+ LuaValueconcatTo(LuaNumber lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueconcatTo(LuaString lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueconcatTo(LuaValue lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + whose type is unknwon + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValuediv(double rhs) + +
+          Divide: Perform numeric divide operation by another value + of double type without metatag processing
+ LuaValuediv(int rhs) + +
+          Divide: Perform numeric divide operation by another value + of int type without metatag processing
+ LuaValuediv(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ LuaValuedivInto(double lhs) + +
+          Reverse-divide: Perform numeric divide operation into another value + with metatag processing
+ booleaneq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using EQ, + and return java boolean
+ LuaValueeq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using EQ.
+static booleaneqmtcall(LuaValue lhs, + LuaValue lhsmt, + LuaValue rhs, + LuaValue rhsmt) + +
+          Perform equality testing metatag processing
+ booleanequals(java.lang.Object obj) + +
+           
+static LuaValueerror(java.lang.String message) + +
+          Throw a LuaError with a particular message
+ LuaValueget(int key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValueget(LuaValue key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValueget(java.lang.String key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValuegetmetatable() + +
+          Get the metatable for this LuaValue
+protected static LuaValuegettable(LuaValue t, + LuaValue key) + +
+          get value from metatable operations, or NIL if not defined by metatables
+ booleangt_b(double rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleangt_b(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangt_b(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegt(double rhs) + +
+          Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleangteq_b(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleangteq_b(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuegteq(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuegteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+protected  LuaValueillegal(java.lang.String op, + java.lang.String typename) + +
+          Throw a LuaError indicating an illegal operation occurred, + typically involved in managing weak references
+ Varargsinext(LuaValue index) + +
+          Find the next integer-key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table.
+ voidinitupvalue1(LuaValue env) + +
+          Hook for implementations such as LuaJC to load the environment of the main chunk + into the first upvalue location.
+ Varargsinvoke() + +
+          Call this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvoke(LuaValue[] args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvoke(LuaValue[] args, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvoke(LuaValue arg1, + LuaValue arg2, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvoke(LuaValue arg, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvoke(Varargs args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(LuaValue name, + LuaValue[] args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(LuaValue name, + Varargs args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(java.lang.String name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(java.lang.String name, + LuaValue[] args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+ Varargsinvokemethod(java.lang.String name, + Varargs args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+ booleanisboolean() + +
+          Check if this is a boolean
+ booleanisclosure() + +
+          Check if this is a function that is a closure, + meaning interprets lua bytecode for its execution
+ booleanisfunction() + +
+          Check if this is a function
+ booleanisint() + +
+          Check if this is a number and is representable by java int + without rounding or truncation
+ booleanisinttype() + +
+          Check if this is a LuaInteger
+ booleanislong() + +
+          Check if this is a number and is representable by java long + without rounding or truncation
+ booleanisnil() + +
+          Check if this is #NIL
+ booleanisnumber() + +
+          Check if this is a number
+ booleanisstring() + +
+          Check if this is a string
+ booleanistable() + +
+          Check if this is a table
+ booleanisthread() + +
+          Check if this is a thread
+ booleanisuserdata() + +
+          Check if this is a userdata
+ booleanisuserdata(java.lang.Class c) + +
+          Check if this is a userdata of type c
+ booleanisvalidkey() + +
+          Return true if this is a valid key in a table index operation.
+ LuaValuelen() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+protected  LuaValuelenerror() + +
+          Throw a LuaError based on the len operator, + typically due to an invalid operand type
+ intlength() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+static LuaTablelistOf(LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied array values.
+static LuaTablelistOf(LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied array values.
+ LuaValueload(LuaValue library) + +
+          Load a library instance by calling it with and empty string as the modname, + and this Globals as the environment.
+ booleanlt_b(double rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ booleanlt_b(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlt_b(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelt(double rhs) + +
+          Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanlteq_b(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean.
+ booleanlteq_b(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValuelteq(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValuelteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+protected static org.luaj.vm2.MetatablemetatableOf(LuaValue mt) + +
+          Construct a Metatable instance from the given LuaValue
+ LuaValuemetatag(LuaValue tag) + +
+          Get particular metatag, or return NIL if it doesn't exist
+ LuaValuemethod(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuemethod(LuaValue name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuemethod(LuaValue name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuemethod(java.lang.String name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuemethod(java.lang.String name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuemethod(java.lang.String name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuemod(double rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of double type without metatag processing
+ LuaValuemod(int rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of int type without metatag processing
+ LuaValuemod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValuemodFrom(double lhs) + +
+          Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing
+ LuaValuemul(double rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of double type with metatag processing
+ LuaValuemul(int rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of int type with metatag processing
+ LuaValuemul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ intnarg() + +
+          Get the number of arguments, or 0 if there are none.
+ LuaValueneg() + +
+          Unary minus: return negative value (-this) as defined by lua unary minus operator
+ booleanneq_b(LuaValue val) + +
+          Notquals: Perform inequality comparison with another value + including metatag processing using EQ.
+ LuaValueneq(LuaValue val) + +
+          Notquals: Perform inequality comparison with another value + including metatag processing using EQ.
+ Varargsnext(LuaValue index) + +
+          Find the next key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table.
+ LuaValuenot() + +
+          Unary not: return inverse boolean value (~this) as defined by lua not operator
+ VarargsonInvoke(Varargs args) + +
+          Callback used during tail call processing to invoke the function once.
+ booleanoptboolean(boolean defval) + +
+          Check that optional argument is a boolean and return its boolean value
+ LuaClosureoptclosure(LuaClosure defval) + +
+          Check that optional argument is a closure and return as LuaClosure
+ doubleoptdouble(double defval) + +
+          Check that optional argument is a number or string convertible to number and return as double
+ LuaFunctionoptfunction(LuaFunction defval) + +
+          Check that optional argument is a function and return as LuaFunction
+ intoptint(int defval) + +
+          Check that optional argument is a number or string convertible to number and return as int
+ LuaIntegeroptinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+ java.lang.Stringoptjstring(java.lang.String defval) + +
+          Check that optional argument is a string or number and return as Java String
+ longoptlong(long defval) + +
+          Check that optional argument is a number or string convertible to number and return as long
+ LuaNumberoptnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+ LuaStringoptstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaTableopttable(LuaTable defval) + +
+          Check that optional argument is a table and return as LuaTable
+ LuaThreadoptthread(LuaThread defval) + +
+          Check that optional argument is a thread and return as LuaThread
+ java.lang.Objectoptuserdata(java.lang.Class c, + java.lang.Object defval) + +
+          Check that optional argument is a userdata whose instance is of a type + and return the Object instance
+ java.lang.Objectoptuserdata(java.lang.Object defval) + +
+          Check that optional argument is a userdata and return the Object instance
+ LuaValueoptvalue(LuaValue defval) + +
+          Perform argument check that this is not nil or none.
+ LuaValueor(LuaValue rhs) + +
+          Perform boolean or with another operand, based on lua rules for boolean evaluation.
+ LuaValuepow(double rhs) + +
+          Raise to power: Raise this value to a power + of double type with metatag processing
+ LuaValuepow(int rhs) + +
+          Raise to power: Raise this value to a power + of int type with metatag processing
+ LuaValuepow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+ LuaValuepowWith(double lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValuepowWith(int lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ voidpresize(int i) + +
+          Preallocate the array part of a table to be a certain size,
+ booleanraweq(double val) + +
+          Equals: Perform direct equality comparison with a double value + without metatag processing.
+ booleanraweq(int val) + +
+          Equals: Perform direct equality comparison with a int value + without metatag processing.
+ booleanraweq(LuaString val) + +
+          Equals: Perform direct equality comparison with a LuaString value + without metatag processing.
+ booleanraweq(LuaUserdata val) + +
+          Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing.
+ booleanraweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ LuaValuerawget(int key) + +
+          Get a value in a table without metatag processing.
+ LuaValuerawget(LuaValue key) + +
+          Get a value in a table without metatag processing.
+ LuaValuerawget(java.lang.String key) + +
+          Get a value in a table without metatag processing.
+ intrawlen() + +
+          Get raw length of table or string without metatag processing.
+ voidrawset(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(int key, + java.lang.String value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(LuaValue key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(java.lang.String key, + double value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(java.lang.String key, + int value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(java.lang.String key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidrawset(java.lang.String key, + java.lang.String value) + +
+          Set a value in a table without metatag processing.
+ voidrawsetlist(int key0, + Varargs values) + +
+          Set list values in a table without invoking metatag processing
+ voidset(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(int key, + java.lang.String value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(LuaValue key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(java.lang.String key, + double value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(java.lang.String key, + int value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(java.lang.String key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidset(java.lang.String key, + java.lang.String value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ LuaValuesetmetatable(LuaValue metatable) + +
+          Set the metatable for this LuaValue
+protected static booleansettable(LuaValue t, + LuaValue key, + LuaValue value) + +
+          Perform field assignment including metatag processing.
+ intstrcmp(LuaString rhs) + +
+          Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values.
+ intstrcmp(LuaValue rhs) + +
+          Perform string comparison with another value + of any type + using string comparison based on byte values.
+ LuaValuestrongvalue() + +
+          Return this value as a strong reference, or null if it was weak and is no longer referenced.
+ LuaStringstrvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ LuaValuesub(double rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of double type with metatag processing
+ LuaValuesub(int rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of int type with metatag processing
+ LuaValuesub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+ Varargssubargs(int start) + +
+          Create a Varargs instance containing arguments starting at index start
+ LuaValuesubFrom(double lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing
+ LuaValuesubFrom(int lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing
+static LuaTabletableOf() + +
+          Construct an empty LuaTable.
+static LuaTabletableOf(int narray, + int nhash) + +
+          Construct an empty LuaTable preallocated to hold array and hashed elements
+static LuaTabletableOf(LuaValue[] namedValues) + +
+          Construct a LuaTable initialized with supplied named values.
+static LuaTabletableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements.
+static LuaTabletableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs.
+static LuaTabletableOf(Varargs varargs, + int firstarg) + +
+          Construct a LuaTable initialized with supplied array values.
+static VarargstailcallOf(LuaValue func, + Varargs args) + +
+          Construct a TailcallVarargs around a function and arguments.
+ booleantestfor_b(LuaValue limit, + LuaValue step) + +
+          Perform end-condition test in for-loop processing.
+ booleantoboolean() + +
+          Convert to boolean false if NIL or FALSE, true if anything else
+ bytetobyte() + +
+          Convert to byte if numeric, or 0 if not.
+ chartochar() + +
+          Convert to char if numeric, or 0 if not.
+ doubletodouble() + +
+          Convert to double if numeric, or 0 if not.
+ floattofloat() + +
+          Convert to float if numeric, or 0 if not.
+ inttoint() + +
+          Convert to int if numeric, or 0 if not.
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ longtolong() + +
+          Convert to long if numeric, or 0 if not.
+ LuaValuetonumber() + +
+          Conditionally convert to lua number without throwing errors.
+ shorttoshort() + +
+          Convert to short if numeric, or 0 if not.
+ LuaValuetostring() + +
+          Conditionally convert to lua string without throwing errors.
+ java.lang.StringtoString() + +
+          Convert the value to a human readable string using tojstring()
+ java.lang.Objecttouserdata() + +
+          Convert to userdata instance, or null.
+ java.lang.Objecttouserdata(java.lang.Class c) + +
+          Convert to userdata instance if specific type, or null.
+abstract  inttype() + +
+          Get the enumeration value for the type of this value.
+abstract  java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+protected  LuaValuetyperror(java.lang.String expected) + +
+          Throw a LuaError indicating an invalid type was supplied to a function
+protected  LuaValueunimplemented(java.lang.String fun) + +
+          Throw a LuaError indicating an operation is not implemented
+static LuaUserdatauserdataOf(java.lang.Object o) + +
+          Construct a LuaUserdata for an object.
+static LuaUserdatauserdataOf(java.lang.Object o, + LuaValue metatable) + +
+          Construct a LuaUserdata for an object with a user supplied metatable.
+static LuaBooleanvalueOf(boolean b) + +
+          Convert java boolean to a LuaValue.
+static LuaStringvalueOf(byte[] bytes) + +
+          Convert bytes in an array to a LuaValue.
+static LuaStringvalueOf(byte[] bytes, + int off, + int len) + +
+          Convert bytes in an array to a LuaValue.
+static LuaNumbervalueOf(double d) + +
+          Convert java double to a LuaValue.
+static LuaIntegervalueOf(int i) + +
+          Convert java int to a LuaValue.
+static LuaStringvalueOf(java.lang.String s) + +
+          Convert java string to a LuaValue.
+static VarargsvarargsOf(LuaValue[] v) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsvarargsOf(LuaValue[] v, + int offset, + int length) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsvarargsOf(LuaValue[] v, + int offset, + int length, + Varargs more) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsvarargsOf(LuaValue[] v, + Varargs r) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsvarargsOf(LuaValue v1, + LuaValue v2, + Varargs v3) + +
+          Construct a Varargs around a set of 3 or more LuaValues.
+static VarargsvarargsOf(LuaValue v, + Varargs r) + +
+          Construct a Varargs around a set of 2 or more LuaValues.
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+TINT

+
+public static final int TINT
+
+
Type enumeration constant for lua numbers that are ints, for compatibility with lua 5.1 number patch only +

+

+
See Also:
Constant Field Values
+
+
+ +

+TNONE

+
+public static final int TNONE
+
+
Type enumeration constant for lua values that have no type, for example weak table entries +

+

+
See Also:
Constant Field Values
+
+
+ +

+TNIL

+
+public static final int TNIL
+
+
Type enumeration constant for lua nil +

+

+
See Also:
Constant Field Values
+
+
+ +

+TBOOLEAN

+
+public static final int TBOOLEAN
+
+
Type enumeration constant for lua booleans +

+

+
See Also:
Constant Field Values
+
+
+ +

+TLIGHTUSERDATA

+
+public static final int TLIGHTUSERDATA
+
+
Type enumeration constant for lua light userdata, for compatibility with C-based lua only +

+

+
See Also:
Constant Field Values
+
+
+ +

+TNUMBER

+
+public static final int TNUMBER
+
+
Type enumeration constant for lua numbers +

+

+
See Also:
Constant Field Values
+
+
+ +

+TSTRING

+
+public static final int TSTRING
+
+
Type enumeration constant for lua strings +

+

+
See Also:
Constant Field Values
+
+
+ +

+TTABLE

+
+public static final int TTABLE
+
+
Type enumeration constant for lua tables +

+

+
See Also:
Constant Field Values
+
+
+ +

+TFUNCTION

+
+public static final int TFUNCTION
+
+
Type enumeration constant for lua functions +

+

+
See Also:
Constant Field Values
+
+
+ +

+TUSERDATA

+
+public static final int TUSERDATA
+
+
Type enumeration constant for lua userdatas +

+

+
See Also:
Constant Field Values
+
+
+ +

+TTHREAD

+
+public static final int TTHREAD
+
+
Type enumeration constant for lua threads +

+

+
See Also:
Constant Field Values
+
+
+ +

+TVALUE

+
+public static final int TVALUE
+
+
Type enumeration constant for unknown values, for compatibility with C-based lua only +

+

+
See Also:
Constant Field Values
+
+
+ +

+TYPE_NAMES

+
+public static final java.lang.String[] TYPE_NAMES
+
+
String array constant containing names of each of the lua value types +

+

+
See Also:
type(), +typename()
+
+
+ +

+NIL

+
+public static final LuaValue NIL
+
+
LuaValue constant corresponding to lua #NIL +

+

+
+
+
+ +

+TRUE

+
+public static final LuaBoolean TRUE
+
+
LuaBoolean constant corresponding to lua true +

+

+
+
+
+ +

+FALSE

+
+public static final LuaBoolean FALSE
+
+
LuaBoolean constant corresponding to lua false +

+

+
+
+
+ +

+NONE

+
+public static final LuaValue NONE
+
+
LuaValue constant corresponding to a Varargs list of no values +

+

+
+
+
+ +

+ZERO

+
+public static final LuaNumber ZERO
+
+
LuaValue number constant equal to 0 +

+

+
+
+
+ +

+ONE

+
+public static final LuaNumber ONE
+
+
LuaValue number constant equal to 1 +

+

+
+
+
+ +

+MINUSONE

+
+public static final LuaNumber MINUSONE
+
+
LuaValue number constant equal to -1 +

+

+
+
+
+ +

+NOVALS

+
+public static final LuaValue[] NOVALS
+
+
LuaValue array constant with no values +

+

+
+
+
+ +

+ENV

+
+public static LuaString ENV
+
+
The variable name of the environment. +

+

+
+
+
+ +

+INDEX

+
+public static final LuaString INDEX
+
+
LuaString constant with value "__index" for use as metatag +

+

+
+
+
+ +

+NEWINDEX

+
+public static final LuaString NEWINDEX
+
+
LuaString constant with value "__newindex" for use as metatag +

+

+
+
+
+ +

+CALL

+
+public static final LuaString CALL
+
+
LuaString constant with value "__call" for use as metatag +

+

+
+
+
+ +

+MODE

+
+public static final LuaString MODE
+
+
LuaString constant with value "__mode" for use as metatag +

+

+
+
+
+ +

+METATABLE

+
+public static final LuaString METATABLE
+
+
LuaString constant with value "__metatable" for use as metatag +

+

+
+
+
+ +

+ADD

+
+public static final LuaString ADD
+
+
LuaString constant with value "__add" for use as metatag +

+

+
+
+
+ +

+SUB

+
+public static final LuaString SUB
+
+
LuaString constant with value "__sub" for use as metatag +

+

+
+
+
+ +

+DIV

+
+public static final LuaString DIV
+
+
LuaString constant with value "__div" for use as metatag +

+

+
+
+
+ +

+MUL

+
+public static final LuaString MUL
+
+
LuaString constant with value "__mul" for use as metatag +

+

+
+
+
+ +

+POW

+
+public static final LuaString POW
+
+
LuaString constant with value "__pow" for use as metatag +

+

+
+
+
+ +

+MOD

+
+public static final LuaString MOD
+
+
LuaString constant with value "__mod" for use as metatag +

+

+
+
+
+ +

+UNM

+
+public static final LuaString UNM
+
+
LuaString constant with value "__unm" for use as metatag +

+

+
+
+
+ +

+LEN

+
+public static final LuaString LEN
+
+
LuaString constant with value "__len" for use as metatag +

+

+
+
+
+ +

+EQ

+
+public static final LuaString EQ
+
+
LuaString constant with value "__eq" for use as metatag +

+

+
+
+
+ +

+LT

+
+public static final LuaString LT
+
+
LuaString constant with value "__lt" for use as metatag +

+

+
+
+
+ +

+LE

+
+public static final LuaString LE
+
+
LuaString constant with value "__le" for use as metatag +

+

+
+
+
+ +

+TOSTRING

+
+public static final LuaString TOSTRING
+
+
LuaString constant with value "__tostring" for use as metatag +

+

+
+
+
+ +

+CONCAT

+
+public static final LuaString CONCAT
+
+
LuaString constant with value "__concat" for use as metatag +

+

+
+
+
+ +

+EMPTYSTRING

+
+public static final LuaString EMPTYSTRING
+
+
LuaString constant with value "" +

+

+
+
+
+ +

+NILS

+
+public static final LuaValue[] NILS
+
+
Array of NIL values to optimize filling stacks using System.arraycopy(). + Must not be modified. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaValue

+
+public LuaValue()
+
+
+ + + + + + + + +
+Method Detail
+ +

+type

+
+public abstract int type()
+
+
Get the enumeration value for the type of this value. +

+

+ +
Returns:
value for this type, one of + TNIL, + TBOOLEAN, + TNUMBER, + TSTRING, + TTABLE, + TFUNCTION, + TUSERDATA, + TTHREAD
See Also:
typename()
+
+
+
+ +

+typename

+
+public abstract java.lang.String typename()
+
+
Get the String name of the type of this value. +

+

+

+ +
Returns:
name from type name list TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
type()
+
+
+
+ +

+isboolean

+
+public boolean isboolean()
+
+
Check if this is a boolean +

+

+ +
Returns:
true if this is a boolean, otherwise false
See Also:
isboolean(), +toboolean(), +checkboolean(), +optboolean(boolean), +TBOOLEAN
+
+
+
+ +

+isclosure

+
+public boolean isclosure()
+
+
Check if this is a function that is a closure, + meaning interprets lua bytecode for its execution +

+

+ +
Returns:
true if this is a closure, otherwise false
See Also:
isfunction(), +checkclosure(), +optclosure(LuaClosure), +TFUNCTION
+
+
+
+ +

+isfunction

+
+public boolean isfunction()
+
+
Check if this is a function +

+

+ +
Returns:
true if this is a function, otherwise false
See Also:
isclosure(), +checkfunction(), +optfunction(LuaFunction), +TFUNCTION
+
+
+
+ +

+isint

+
+public boolean isint()
+
+
Check if this is a number and is representable by java int + without rounding or truncation +

+

+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by int, + otherwise false
See Also:
isinttype(), +islong(), +tonumber(), +checkint(), +optint(int), +TNUMBER
+
+
+
+ +

+isinttype

+
+public boolean isinttype()
+
+
Check if this is a LuaInteger +

+ No attempt to convert from string will be made by this call. +

+

+ +
Returns:
true if this is a LuaInteger, + otherwise false
See Also:
isint(), +isnumber(), +tonumber(), +TNUMBER
+
+
+
+ +

+islong

+
+public boolean islong()
+
+
Check if this is a number and is representable by java long + without rounding or truncation +

+

+ +
Returns:
true if this is a number + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + and can be represented by long, + otherwise false
See Also:
tonumber(), +checklong(), +optlong(long), +TNUMBER
+
+
+
+ +

+isnil

+
+public boolean isnil()
+
+
Check if this is #NIL +

+

+ +
Returns:
true if this is #NIL, otherwise false
See Also:
NIL, +NONE, +checknotnil(), +optvalue(LuaValue), +Varargs.isnoneornil(int), +TNIL, +TNONE
+
+
+
+ +

+isnumber

+
+public boolean isnumber()
+
+
Check if this is a number +

+

+ +
Returns:
true if this is a number, + meaning derives from LuaNumber + or derives from LuaString and is convertible to a number, + otherwise false
See Also:
tonumber(), +checknumber(), +optnumber(LuaNumber), +TNUMBER
+
+
+
+ +

+isstring

+
+public boolean isstring()
+
+
Check if this is a string +

+

+ +
Returns:
true if this is a string, + meaning derives from LuaString or LuaNumber, + otherwise false
See Also:
tostring(), +checkstring(), +optstring(LuaString), +TSTRING
+
+
+
+ +

+isthread

+
+public boolean isthread()
+
+
Check if this is a thread +

+

+ +
Returns:
true if this is a thread, otherwise false
See Also:
checkthread(), +optthread(LuaThread), +TTHREAD
+
+
+
+ +

+istable

+
+public boolean istable()
+
+
Check if this is a table +

+

+ +
Returns:
true if this is a table, otherwise false
See Also:
checktable(), +opttable(LuaTable), +TTABLE
+
+
+
+ +

+isuserdata

+
+public boolean isuserdata()
+
+
Check if this is a userdata +

+

+ +
Returns:
true if this is a userdata, otherwise false
See Also:
isuserdata(Class), +touserdata(), +checkuserdata(), +optuserdata(Object), +TUSERDATA
+
+
+
+ +

+isuserdata

+
+public boolean isuserdata(java.lang.Class c)
+
+
Check if this is a userdata of type c +

+

+
Parameters:
c - Class to test instance against +
Returns:
true if this is a userdata + and the instance is assignable to c, + otherwise false
See Also:
isuserdata(), +touserdata(Class), +checkuserdata(Class), +optuserdata(Class, Object), +TUSERDATA
+
+
+
+ +

+toboolean

+
+public boolean toboolean()
+
+
Convert to boolean false if NIL or FALSE, true if anything else +

+

+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
optboolean(boolean), +checkboolean(), +isboolean(), +TBOOLEAN
+
+
+
+ +

+tobyte

+
+public byte tobyte()
+
+
Convert to byte if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to byte if number or string convertible to number, otherwise 0
See Also:
toint(), +todouble(), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+tochar

+
+public char tochar()
+
+
Convert to char if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to char if number or string convertible to number, otherwise 0
See Also:
toint(), +todouble(), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+todouble

+
+public double todouble()
+
+
Convert to double if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to double if number or string convertible to number, otherwise 0
See Also:
toint(), +tobyte(), +tochar(), +toshort(), +tolong(), +tofloat(), +optdouble(double), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+tofloat

+
+public float tofloat()
+
+
Convert to float if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to float if number or string convertible to number, otherwise 0
See Also:
toint(), +todouble(), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+toint

+
+public int toint()
+
+
Convert to int if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to int if number or string convertible to number, otherwise 0
See Also:
tobyte(), +tochar(), +toshort(), +tolong(), +tofloat(), +todouble(), +optint(int), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+tolong

+
+public long tolong()
+
+
Convert to long if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to long if number or string convertible to number, otherwise 0
See Also:
isint(), +isinttype(), +toint(), +todouble(), +optlong(long), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+toshort

+
+public short toshort()
+
+
Convert to short if numeric, or 0 if not. +

+

+ +
Returns:
Value cast to short if number or string convertible to number, otherwise 0
See Also:
toint(), +todouble(), +checknumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class Varargs
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
tostring(), +optjstring(String), +checkjstring(), +isstring(), +TSTRING
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata()
+
+
Convert to userdata instance, or null. +

+

+ +
Returns:
userdata instance if userdata, or null if not LuaUserdata
See Also:
optuserdata(Object), +checkuserdata(), +isuserdata(), +TUSERDATA
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata(java.lang.Class c)
+
+
Convert to userdata instance if specific type, or null. +

+

+ +
Returns:
userdata instance if is a userdata whose instance derives from c, + or null if not LuaUserdata
See Also:
optuserdata(Class,Object), +checkuserdata(Class), +isuserdata(Class), +TUSERDATA
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Convert the value to a human readable string using tojstring() +

+

+
Overrides:
toString in class Varargs
+
+
+ +
Returns:
String value intended to be human readible.
See Also:
tostring(), +tojstring(), +optstring(LuaString), +checkstring(), +toString()
+
+
+
+ +

+tonumber

+
+public LuaValue tonumber()
+
+
Conditionally convert to lua number without throwing errors. +

+ In lua all numbers are strings, but not all strings are numbers. + This function will return + the LuaValue this if it is a number + or a string convertible to a number, + and NIL for all other cases. +

+ This allows values to be tested for their "numeric-ness" without + the penalty of throwing exceptions, + nor the cost of converting the type and creating storage for it. +

+

+ +
Returns:
this if it is a LuaNumber + or LuaString that can be converted to a number, + otherwise NIL
See Also:
tostring(), +optnumber(LuaNumber), +checknumber(), +toint(), +todouble()
+
+
+
+ +

+tostring

+
+public LuaValue tostring()
+
+
Conditionally convert to lua string without throwing errors. +

+ In lua all numbers are strings, so this function will return + the LuaValue this if it is a string or number, + and NIL for all other cases. +

+ This allows values to be tested for their "string-ness" without + the penalty of throwing exceptions. +

+

+ +
Returns:
this if it is a LuaString or LuaNumber, + otherwise NIL
See Also:
tonumber(), +tojstring(), +optstring(LuaString), +checkstring(), +toString()
+
+
+
+ +

+optboolean

+
+public boolean optboolean(boolean defval)
+
+
Check that optional argument is a boolean and return its boolean value +

+

+
Parameters:
defval - boolean value to return if this is nil or none +
Returns:
this cast to boolean if a LuaBoolean, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not a boolean or nil or none.
See Also:
checkboolean(), +isboolean(), +TBOOLEAN
+
+
+
+ +

+optclosure

+
+public LuaClosure optclosure(LuaClosure defval)
+
+
Check that optional argument is a closure and return as LuaClosure +

+ A LuaClosure is a LuaFunction that executes lua byteccode. +

+

+
Parameters:
defval - LuaClosure to return if this is nil or none +
Returns:
this cast to LuaClosure if a function, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not a closure or nil or none.
See Also:
checkclosure(), +isclosure(), +TFUNCTION
+
+
+
+ +

+optdouble

+
+public double optdouble(double defval)
+
+
Check that optional argument is a number or string convertible to number and return as double +

+

+
Parameters:
defval - double to return if this is nil or none +
Returns:
this cast to double if numeric, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not numeric or nil or none.
See Also:
optint(int), +optinteger(LuaInteger), +checkdouble(), +todouble(), +tonumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+optfunction

+
+public LuaFunction optfunction(LuaFunction defval)
+
+
Check that optional argument is a function and return as LuaFunction +

+ A LuaFunction may either be a Java function that implements + functionality directly in Java, or a LuaClosure + which is a LuaFunction that executes lua bytecode. +

+

+
Parameters:
defval - LuaFunction to return if this is nil or none +
Returns:
this cast to LuaFunction if a function, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not a function or nil or none.
See Also:
checkfunction(), +isfunction(), +TFUNCTION
+
+
+
+ +

+optint

+
+public int optint(int defval)
+
+
Check that optional argument is a number or string convertible to number and return as int +

+

+
Parameters:
defval - int to return if this is nil or none +
Returns:
this cast to int if numeric, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not numeric or nil or none.
See Also:
optdouble(double), +optlong(long), +optinteger(LuaInteger), +checkint(), +toint(), +tonumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(LuaInteger defval)
+
+
Check that optional argument is a number or string convertible to number and return as LuaInteger +

+

+
Parameters:
defval - LuaInteger to return if this is nil or none +
Returns:
this converted and wrapped in LuaInteger if numeric, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not numeric or nil or none.
See Also:
optdouble(double), +optint(int), +checkint(), +toint(), +tonumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+optlong

+
+public long optlong(long defval)
+
+
Check that optional argument is a number or string convertible to number and return as long +

+

+
Parameters:
defval - long to return if this is nil or none +
Returns:
this cast to long if numeric, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not numeric or nil or none.
See Also:
optdouble(double), +optint(int), +checkint(), +toint(), +tonumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(LuaNumber defval)
+
+
Check that optional argument is a number or string convertible to number and return as LuaNumber +

+

+
Parameters:
defval - LuaNumber to return if this is nil or none +
Returns:
this cast to LuaNumber if numeric, + defval if nil or none, + throws LuaError otherwise +
Throws: +
LuaError - if was not numeric or nil or none.
See Also:
optdouble(double), +optlong(long), +optint(int), +checkint(), +toint(), +tonumber(), +isnumber(), +TNUMBER
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(java.lang.String defval)
+
+
Check that optional argument is a string or number and return as Java String +

+

+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to String if a string or number, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a string or number or nil or none.
See Also:
tojstring(), +optstring(LuaString), +checkjstring(), +toString(), +TSTRING
+
+
+
+ +

+optstring

+
+public LuaString optstring(LuaString defval)
+
+
Check that optional argument is a string or number and return as LuaString +

+

+
Parameters:
defval - LuaString to return if this is nil or none +
Returns:
this converted to LuaString if a string or number, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a string or number or nil or none.
See Also:
tojstring(), +optjstring(String), +checkstring(), +toString(), +TSTRING
+
+
+
+ +

+opttable

+
+public LuaTable opttable(LuaTable defval)
+
+
Check that optional argument is a table and return as LuaTable +

+

+
Parameters:
defval - LuaTable to return if this is nil or none +
Returns:
this cast to LuaTable if a table, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a table or nil or none.
See Also:
checktable(), +istable(), +TTABLE
+
+
+
+ +

+optthread

+
+public LuaThread optthread(LuaThread defval)
+
+
Check that optional argument is a thread and return as LuaThread +

+

+
Parameters:
defval - LuaThread to return if this is nil or none +
Returns:
this cast to LuaTable if a thread, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a thread or nil or none.
See Also:
checkthread(), +isthread(), +TTHREAD
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Object defval)
+
+
Check that optional argument is a userdata and return the Object instance +

+

+
Parameters:
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a userdata or nil or none.
See Also:
checkuserdata(), +isuserdata(), +optuserdata(Class, Object), +TUSERDATA
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(java.lang.Class c,
+                                    java.lang.Object defval)
+
+
Check that optional argument is a userdata whose instance is of a type + and return the Object instance +

+

+
Parameters:
c - Class to test userdata instance against
defval - Object to return if this is nil or none +
Returns:
Object instance of the userdata if a LuaUserdata and instance is assignable to c, + defval if nil or none, + throws LuaError if some other type +
Throws: +
LuaError - if was not a userdata whose instance is assignable to c or nil or none.
See Also:
checkuserdata(Class), +isuserdata(Class), +optuserdata(Object), +TUSERDATA
+
+
+
+ +

+optvalue

+
+public LuaValue optvalue(LuaValue defval)
+
+
Perform argument check that this is not nil or none. +

+

+
Parameters:
defval - LuaValue to return if this is nil or none +
Returns:
this if not nil or none, else defval
See Also:
NIL, +NONE, +isnil(), +Varargs.isnoneornil(int), +TNIL, +TNONE
+
+
+
+ +

+checkboolean

+
+public boolean checkboolean()
+
+
Check that the value is a LuaBoolean, + or throw LuaError if not +

+

+ +
Returns:
boolean value for this if it is a LuaBoolean +
Throws: +
LuaError - if not a LuaBoolean
See Also:
optboolean(boolean), +TBOOLEAN
+
+
+
+ +

+checkclosure

+
+public LuaClosure checkclosure()
+
+
Check that the value is a LuaClosure , + or throw LuaError if not +

+ LuaClosure is a subclass of LuaFunction that interprets lua bytecode. +

+

+ +
Returns:
this cast as LuaClosure +
Throws: +
LuaError - if not a LuaClosure
See Also:
checkfunction(), +optclosure(LuaClosure), +isclosure(), +TFUNCTION
+
+
+
+ +

+checkdouble

+
+public double checkdouble()
+
+
Check that the value is numeric and return the value as a double, + or throw LuaError if not numeric +

+ Values that are LuaNumber and values that are LuaString + that can be converted to a number will be converted to double. +

+

+ +
Returns:
value cast to a double if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkint(), +checkinteger(), +checklong(), +optdouble(double), +TNUMBER
+
+
+
+ +

+checkfunction

+
+public LuaFunction checkfunction()
+
+
Check that the value is a function , or throw LuaError if not +

+ A LuaFunction may either be a Java function that implements + functionality directly in Java, or a LuaClosure + which is a LuaFunction that executes lua bytecode. +

+

+ +
Returns:
this if it is a lua function or closure +
Throws: +
LuaError - if not a function
See Also:
checkclosure()
+
+
+
+ +

+checkglobals

+
+public Globals checkglobals()
+
+
Check that the value is a Globals instance, or throw LuaError if not +

+ Globals are a special LuaTable that establish the default global environment. +

+

+ +
Returns:
this if if an instance fof Globals +
Throws: +
LuaError - if not a Globals instance.
+
+
+
+ +

+checkint

+
+public int checkint()
+
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+ +
Returns:
value cast to a int if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkinteger(), +checklong(), +checkdouble(), +optint(int), +TNUMBER
+
+
+
+ +

+checkinteger

+
+public LuaInteger checkinteger()
+
+
Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to int and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to int, so may also lose precision. +

+

+ +
Returns:
value cast to a int and wrapped in LuaInteger if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkint(), +checklong(), +checkdouble(), +optinteger(LuaInteger), +TNUMBER
+
+
+
+ +

+checklong

+
+public long checklong()
+
+
Check that the value is numeric, and convert and cast value to long, or throw LuaError if not numeric +

+ Values that are LuaNumber will be cast to long and may lose precision. + Values that are LuaString that can be converted to a number will be converted, + then cast to long, so may also lose precision. +

+

+ +
Returns:
value cast to a long if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkint(), +checkinteger(), +checkdouble(), +optlong(long), +TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber()
+
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+ +
Returns:
value as a LuaNumber if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkint(), +checkinteger(), +checkdouble(), +checklong(), +optnumber(LuaNumber), +TNUMBER
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber(java.lang.String msg)
+
+
Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError +

+ Values that are LuaString that can be converted to a number will be converted and returned. +

+

+
Parameters:
msg - String message to supply if conversion fails +
Returns:
value as a LuaNumber if numeric +
Throws: +
LuaError - if not a LuaNumber or is a LuaString that can't be converted to number
See Also:
checkint(), +checkinteger(), +checkdouble(), +checklong(), +optnumber(LuaNumber), +TNUMBER
+
+
+
+ +

+checkjstring

+
+public java.lang.String checkjstring()
+
+
Convert this value to a Java String. +

+ The string representations here will roughly match what is produced by the + C lua distribution, however hash codes have no relationship, + and there may be differences in number formatting. +

+

+ +
Returns:
String representation of the value
See Also:
checkstring(), +optjstring(String), +tojstring(), +isstring(), +TSTRING
+
+
+
+ +

+checkstring

+
+public LuaString checkstring()
+
+
Check that this is a lua string, or throw LuaError if it is not. +

+ In lua all numbers are strings, so this will succeed for + anything that derives from LuaString or LuaNumber. + Numbers will be converted to LuaString. +

+

+ +
Returns:
LuaString representation of the value if it is a LuaString or LuaNumber +
Throws: +
LuaError - if this is not a LuaTable
See Also:
checkjstring(), +optstring(LuaString), +tostring(), +isstring(), +TSTRING
+
+
+
+ +

+checktable

+
+public LuaTable checktable()
+
+
Check that this is a LuaTable, or throw LuaError if it is not +

+

+ +
Returns:
this if it is a LuaTable +
Throws: +
LuaError - if this is not a LuaTable
See Also:
istable(), +opttable(LuaTable), +TTABLE
+
+
+
+ +

+checkthread

+
+public LuaThread checkthread()
+
+
Check that this is a LuaThread, or throw LuaError if it is not +

+

+ +
Returns:
this if it is a LuaThread +
Throws: +
LuaError - if this is not a LuaThread
See Also:
isthread(), +optthread(LuaThread), +TTHREAD
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata()
+
+
Check that this is a LuaUserdata, or throw LuaError if it is not +

+

+ +
Returns:
this if it is a LuaUserdata +
Throws: +
LuaError - if this is not a LuaUserdata
See Also:
isuserdata(), +optuserdata(Object), +checkuserdata(Class), +TUSERDATA
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata(java.lang.Class c)
+
+
Check that this is a LuaUserdata, or throw LuaError if it is not +

+

+ +
Returns:
this if it is a LuaUserdata +
Throws: +
LuaError - if this is not a LuaUserdata
See Also:
isuserdata(Class), +optuserdata(Class, Object), +checkuserdata(), +TUSERDATA
+
+
+
+ +

+checknotnil

+
+public LuaValue checknotnil()
+
+
Check that this is not the value NIL, or throw LuaError if it is +

+

+ +
Returns:
this if it is not NIL +
Throws: +
LuaError - if this is NIL
See Also:
optvalue(LuaValue)
+
+
+
+ +

+isvalidkey

+
+public boolean isvalidkey()
+
+
Return true if this is a valid key in a table index operation. +

+

+ +
Returns:
true if valid as a table key, otherwise false
See Also:
isnil(), +isinttype()
+
+
+
+ +

+error

+
+public static LuaValue error(java.lang.String message)
+
+
Throw a LuaError with a particular message +

+

+
Parameters:
message - String providing message details +
Throws: +
LuaError - in all cases
+
+
+
+ +

+assert_

+
+public static void assert_(boolean b,
+                           java.lang.String msg)
+
+
Assert a condition is true, or throw a LuaError if not + Returns no value when b is true, throws error(String) with msg as argument + and does not return if b is false. +

+

+
Parameters:
b - condition to test
msg - String message to produce on failure +
Throws: +
LuaError - if b is not true
+
+
+
+ +

+argerror

+
+protected LuaValue argerror(java.lang.String expected)
+
+
Throw a LuaError indicating an invalid argument was supplied to a function +

+

+
Parameters:
expected - String naming the type that was expected +
Throws: +
LuaError - in all cases
+
+
+
+ +

+argerror

+
+public static LuaValue argerror(int iarg,
+                                java.lang.String msg)
+
+
Throw a LuaError indicating an invalid argument was supplied to a function +

+

+
Parameters:
iarg - index of the argument that was invalid, first index is 1
msg - String providing information about the invalid argument +
Throws: +
LuaError - in all cases
+
+
+
+ +

+typerror

+
+protected LuaValue typerror(java.lang.String expected)
+
+
Throw a LuaError indicating an invalid type was supplied to a function +

+

+
Parameters:
expected - String naming the type that was expected +
Throws: +
LuaError - in all cases
+
+
+
+ +

+unimplemented

+
+protected LuaValue unimplemented(java.lang.String fun)
+
+
Throw a LuaError indicating an operation is not implemented +

+

+ +
Throws: +
LuaError - in all cases
+
+
+
+ +

+illegal

+
+protected LuaValue illegal(java.lang.String op,
+                           java.lang.String typename)
+
+
Throw a LuaError indicating an illegal operation occurred, + typically involved in managing weak references +

+

+ +
Throws: +
LuaError - in all cases
+
+
+
+ +

+lenerror

+
+protected LuaValue lenerror()
+
+
Throw a LuaError based on the len operator, + typically due to an invalid operand type +

+

+ +
Throws: +
LuaError - in all cases
+
+
+
+ +

+aritherror

+
+protected LuaValue aritherror()
+
+
Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type +

+

+ +
Throws: +
LuaError - in all cases
+
+
+
+ +

+aritherror

+
+protected LuaValue aritherror(java.lang.String fun)
+
+
Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type +

+

+
Parameters:
fun - String description of the function that was attempted +
Throws: +
LuaError - in all cases
+
+
+
+ +

+compareerror

+
+protected LuaValue compareerror(java.lang.String rhs)
+
+
Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type +

+

+
Parameters:
rhs - String description of what was on the right-hand-side of the comparison that resulted in the error. +
Throws: +
LuaError - in all cases
+
+
+
+ +

+compareerror

+
+protected LuaValue compareerror(LuaValue rhs)
+
+
Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type +

+

+
Parameters:
rhs - Right-hand-side of the comparison that resulted in the error. +
Throws: +
LuaError - in all cases
+
+
+
+ +

+get

+
+public LuaValue get(LuaValue key)
+
+
Get a value in a table including metatag processing using INDEX. +

+

+
Parameters:
key - the key to look up, must not be NIL or null +
Returns:
LuaValue for that key, or NIL if not found and no metatag +
Throws: +
LuaError - if this is not a table, + or there is no INDEX metatag, + or key is NIL
See Also:
get(int), +get(String), +rawget(LuaValue)
+
+
+
+ +

+get

+
+public LuaValue get(int key)
+
+
Get a value in a table including metatag processing using INDEX. +

+

+
Parameters:
key - the key to look up +
Returns:
LuaValue for that key, or NIL if not found +
Throws: +
LuaError - if this is not a table, + or there is no INDEX metatag
See Also:
get(LuaValue), +rawget(int)
+
+
+
+ +

+get

+
+public LuaValue get(java.lang.String key)
+
+
Get a value in a table including metatag processing using INDEX. +

+

+
Parameters:
key - the key to look up, must not be null +
Returns:
LuaValue for that key, or NIL if not found +
Throws: +
LuaError - if this is not a table, + or there is no INDEX metatag
See Also:
get(LuaValue), +rawget(String)
+
+
+
+ +

+set

+
+public void set(LuaValue key,
+                LuaValue value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use, must not be NIL or null
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table, + or key is NIL, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(int key,
+                LuaValue value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(int key,
+                java.lang.String value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use
value - the value to use, must not be null +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(java.lang.String key,
+                LuaValue value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use, must not be NIL or null
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(java.lang.String key,
+                double value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(java.lang.String key,
+                int value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+set

+
+public void set(java.lang.String key,
+                java.lang.String value)
+
+
Set a value in a table without metatag processing using NEWINDEX. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use, must not be null +
Throws: +
LuaError - if this is not a table, + or there is no NEWINDEX metatag
+
+
+
+ +

+rawget

+
+public LuaValue rawget(LuaValue key)
+
+
Get a value in a table without metatag processing. +

+

+
Parameters:
key - the key to look up, must not be NIL or null +
Returns:
LuaValue for that key, or NIL if not found +
Throws: +
LuaError - if this is not a table, or key is NIL
+
+
+
+ +

+rawget

+
+public LuaValue rawget(int key)
+
+
Get a value in a table without metatag processing. +

+

+
Parameters:
key - the key to look up +
Returns:
LuaValue for that key, or NIL if not found +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawget

+
+public LuaValue rawget(java.lang.String key)
+
+
Get a value in a table without metatag processing. +

+

+
Parameters:
key - the key to look up, must not be null +
Returns:
LuaValue for that key, or NIL if not found +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(LuaValue key,
+                   LuaValue value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use, must not be NIL or null
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table, or key is NIL
+
+
+
+ +

+rawset

+
+public void rawset(int key,
+                   LuaValue value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(int key,
+                   java.lang.String value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(java.lang.String key,
+                   LuaValue value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use, can be NIL, must not be null +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(java.lang.String key,
+                   double value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(java.lang.String key,
+                   int value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawset

+
+public void rawset(java.lang.String key,
+                   java.lang.String value)
+
+
Set a value in a table without metatag processing. +

+

+
Parameters:
key - the key to use, must not be null
value - the value to use, must not be null +
Throws: +
LuaError - if this is not a table
+
+
+
+ +

+rawsetlist

+
+public void rawsetlist(int key0,
+                       Varargs values)
+
+
Set list values in a table without invoking metatag processing +

+ Primarily used internally in response to a SETLIST bytecode. +

+

+
Parameters:
key0 - the first key to set in the table
values - the list of values to set +
Throws: +
LuaError - if this is not a table.
+
+
+
+ +

+presize

+
+public void presize(int i)
+
+
Preallocate the array part of a table to be a certain size, +

+ Primarily used internally in response to a SETLIST bytecode. +

+

+
Parameters:
i - the number of array slots to preallocate in the table. +
Throws: +
LuaError - if this is not a table.
+
+
+
+ +

+next

+
+public Varargs next(LuaValue index)
+
+
Find the next key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table. +

+ To iterate over all key-value pairs in a table you can use +

 LuaValue k = LuaValue.NIL;
+ while ( true ) {
+    Varargs n = table.next(k);
+    if ( (k = n.arg1()).isnil() )
+       break;
+    LuaValue v = n.arg(2)
+    process( k, v )
+ }
+

+

+
Parameters:
index - LuaInteger value identifying a key to start from, + or NIL to start at the beginning +
Returns:
Varargs containing {key,value} for the next entry, + or NIL if there are no more. +
Throws: +
LuaError - if this is not a table, or the supplied key is invalid.
See Also:
LuaTable, +inext(LuaValue), +valueOf(int), +Varargs.arg1(), +Varargs.arg(int), +isnil()
+
+
+
+ +

+inext

+
+public Varargs inext(LuaValue index)
+
+
Find the next integer-key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table. +

+ To iterate over integer keys in a table you can use +

 LuaValue k = LuaValue.NIL;
+   while ( true ) {
+      Varargs n = table.inext(k);
+      if ( (k = n.arg1()).isnil() )
+         break;
+      LuaValue v = n.arg(2)
+      process( k, v )
+   }
+  
+

+

+
Parameters:
index - LuaInteger value identifying a key to start from, + or NIL to start at the beginning +
Returns:
Varargs containing (key,value) for the next entry, + or NONE if there are no more. +
Throws: +
LuaError - if this is not a table, or the supplied key is invalid.
See Also:
LuaTable, +next(LuaValue), +valueOf(int), +Varargs.arg1(), +Varargs.arg(int), +isnil()
+
+
+
+ +

+load

+
+public LuaValue load(LuaValue library)
+
+
Load a library instance by calling it with and empty string as the modname, + and this Globals as the environment. This is normally used to iniitalize the + library instance and which may install itself into these globals. +

+

+
Parameters:
library - The callable LuaValue to load into this +
Returns:
LuaValue returned by the initialization call.
+
+
+
+ +

+arg

+
+public LuaValue arg(int index)
+
+
Description copied from class: Varargs
+
Get the n-th argument value (1-based). +

+

+
Specified by:
arg in class Varargs
+
+
+
Parameters:
index - the index of the argument to get, 1 is the first argument +
Returns:
Value at position i, or LuaValue.NIL if there is none.
See Also:
Varargs.arg1(), +NIL
+
+
+
+ +

+narg

+
+public int narg()
+
+
Description copied from class: Varargs
+
Get the number of arguments, or 0 if there are none. +

+

+
Specified by:
narg in class Varargs
+
+
+ +
Returns:
number of arguments.
+
+
+
+ +

+arg1

+
+public LuaValue arg1()
+
+
Description copied from class: Varargs
+
Get the first argument in the list. +

+

+
Specified by:
arg1 in class Varargs
+
+
+ +
Returns:
LuaValue which is first in the list, or LuaValue.NIL if there are no values.
See Also:
Varargs.arg(int), +NIL
+
+
+
+ +

+getmetatable

+
+public LuaValue getmetatable()
+
+
Get the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, + the metatable returned is this instance metatable. + For all other types, the class metatable value will be returned. +

+

+ +
Returns:
metatable, or null if it there is none
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+setmetatable

+
+public LuaValue setmetatable(LuaValue metatable)
+
+
Set the metatable for this LuaValue +

+ For LuaTable and LuaUserdata instances, the metatable is per instance. + For all other types, there is one metatable per type that can be set directly from java +

+

+
Parameters:
metatable - LuaValue instance to serve as the metatable, or null to reset it. +
Returns:
this to allow chaining of Java function calls
See Also:
LuaBoolean.s_metatable, +LuaNumber.s_metatable, +LuaNil.s_metatable, +LuaFunction.s_metatable, +LuaThread.s_metatable
+
+
+
+ +

+call

+
+public LuaValue call()
+
+
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 CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

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

+

+ +
Returns:
First return value (this()), or NIL if there were none. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(LuaValue), +call(LuaValue,LuaValue), +call(LuaValue, LuaValue, LuaValue), +invoke(), +method(String), +method(LuaValue)
+
+
+
+ +

+call

+
+public LuaValue call(LuaValue arg)
+
+
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 CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

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

+

+
Parameters:
arg - First argument to supply to the called function +
Returns:
First return value (this(arg)), or NIL if there were none. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +call(LuaValue,LuaValue), +call(LuaValue, LuaValue, LuaValue), +invoke(Varargs), +method(String,LuaValue), +method(LuaValue,LuaValue)
+
+
+
+ +

+call

+
+public LuaValue call(java.lang.String arg)
+
+
Convenience function which calls a luavalue with a single, string argument. +

+

+
Parameters:
arg - String argument to the function. This will be converted to a LuaString. +
Returns:
return value of the invocation.
See Also:
call(LuaValue)
+
+
+
+ +

+call

+
+public LuaValue call(LuaValue arg1,
+                     LuaValue arg2)
+
+
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 CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

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

+

+
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 NIL if there were none. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +call(LuaValue), +call(LuaValue, LuaValue, LuaValue), +invoke(LuaValue, Varargs), +method(String,LuaValue,LuaValue), +method(LuaValue,LuaValue,LuaValue)
+
+
+
+ +

+call

+
+public LuaValue call(LuaValue arg1,
+                     LuaValue arg2,
+                     LuaValue arg3)
+
+
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 CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

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

+

+
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 NIL if there were none. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +call(LuaValue), +call(LuaValue, LuaValue), +invoke(LuaValue, LuaValue, Varargs), +invokemethod(String,Varargs), +invokemethod(LuaValue,Varargs)
+
+
+
+ +

+method

+
+public LuaValue method(java.lang.String name)
+
+
Call named method on this with 0 arguments, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument. + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call() instead. +

+

+
Parameters:
name - Name of the method to look up for invocation +
Returns:
All values returned from this:name() as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(), +method(LuaValue), +method(String,LuaValue), +method(String,LuaValue,LuaValue)
+
+
+
+ +

+method

+
+public LuaValue method(LuaValue name)
+
+
Call named method on this with 0 arguments, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call() instead. +

+

+
Parameters:
name - Name of the method to look up for invocation +
Returns:
All values returned from this:name() as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(), +method(String), +method(LuaValue,LuaValue), +method(LuaValue,LuaValue,LuaValue)
+
+
+
+ +

+method

+
+public LuaValue method(java.lang.String name,
+                       LuaValue arg)
+
+
Call named method on this with 1 argument, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call(LuaValue) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
arg - Argument to supply to the method +
Returns:
All values returned from this:name(arg) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(LuaValue), +invoke(Varargs), +method(String), +method(LuaValue), +method(String,LuaValue,LuaValue)
+
+
+
+ +

+method

+
+public LuaValue method(LuaValue name,
+                       LuaValue arg)
+
+
Call named method on this with 1 argument, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call(LuaValue) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
arg - Argument to supply to the method +
Returns:
All values returned from this:name(arg) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(LuaValue), +invoke(Varargs), +method(String,LuaValue), +method(LuaValue), +method(LuaValue,LuaValue,LuaValue)
+
+
+
+ +

+method

+
+public LuaValue method(java.lang.String name,
+                       LuaValue arg1,
+                       LuaValue arg2)
+
+
Call named method on this with 2 arguments, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call(LuaValue,LuaValue) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
arg1 - First argument to supply to the method
arg2 - Second argument to supply to the method +
Returns:
All values returned from this:name(arg1,arg2) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(LuaValue,LuaValue), +invoke(LuaValue,Varargs), +method(String,LuaValue), +method(LuaValue,LuaValue,LuaValue)
+
+
+
+ +

+method

+
+public LuaValue method(LuaValue name,
+                       LuaValue arg1,
+                       LuaValue arg2)
+
+
Call named method on this with 2 arguments, including metatag processing, + and return only the first return value. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return only its first return value, dropping any others. + Otherwise, look for the CALL metatag and call that. +

+ If the return value is a Varargs, only the 1st value will be returned. + To get multiple values, use invoke() instead. +

+ To call this as a plain call, use call(LuaValue,LuaValue) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
arg1 - First argument to supply to the method
arg2 - Second argument to supply to the method +
Returns:
All values returned from this:name(arg1,arg2) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(LuaValue,LuaValue), +invoke(LuaValue,Varargs), +method(LuaValue,LuaValue), +method(String,LuaValue,LuaValue)
+
+
+
+ +

+invoke

+
+public Varargs invoke()
+
+
Call this with 0 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 CALL metatag and call that. +

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

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

+

+ +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(Varargs), +invokemethod(String), +invokemethod(LuaValue)
+
+
+
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
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 CALL metatag and call that. +

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

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

+

+
Parameters:
args - Varargs containing the arguments to supply to the called function +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
varargsOf(LuaValue[]), +call(LuaValue), +invoke(), +invoke(LuaValue,Varargs), +invokemethod(String,Varargs), +invokemethod(LuaValue,Varargs)
+
+
+
+ +

+invoke

+
+public Varargs invoke(LuaValue arg,
+                      Varargs varargs)
+
+
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 CALL metatag and call that. +

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

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

+

+
Parameters:
arg - The first argument to supply to the called function
varargs - Varargs containing the remaining arguments to supply to the called function +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
varargsOf(LuaValue[]), +call(LuaValue,LuaValue), +invoke(LuaValue,Varargs), +invokemethod(String,Varargs), +invokemethod(LuaValue,Varargs)
+
+
+
+ +

+invoke

+
+public Varargs invoke(LuaValue arg1,
+                      LuaValue arg2,
+                      Varargs varargs)
+
+
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 CALL metatag and call that. +

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

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

+

+
Parameters:
arg1 - The first argument to supply to the called function
arg2 - The second argument to supply to the called function
varargs - Varargs containing the remaining arguments to supply to the called function +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
varargsOf(LuaValue[]), +call(LuaValue,LuaValue,LuaValue), +invoke(LuaValue,LuaValue,Varargs), +invokemethod(String,Varargs), +invokemethod(LuaValue,Varargs)
+
+
+
+ +

+invoke

+
+public Varargs invoke(LuaValue[] args)
+
+
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 CALL metatag and call that. +

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

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

+

+
Parameters:
args - Array of arguments to supply to the called function +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
varargsOf(LuaValue[]), +call(LuaValue,LuaValue,LuaValue), +invoke(LuaValue,LuaValue,Varargs), +invokemethod(String,LuaValue[]), +invokemethod(LuaValue,LuaValue[])
+
+
+
+ +

+invoke

+
+public Varargs invoke(LuaValue[] args,
+                      Varargs varargs)
+
+
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 CALL metatag and call that. +

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

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

+

+
Parameters:
args - Array of arguments to supply to the called function
varargs - Varargs containing additional arguments to supply to the called function +
Returns:
All return values as a Varargs instance. +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
varargsOf(LuaValue[]), +call(LuaValue,LuaValue,LuaValue), +invoke(LuaValue,LuaValue,Varargs), +invokemethod(String,LuaValue[]), +invokemethod(LuaValue,LuaValue[]), +invokemethod(String,Varargs), +invokemethod(LuaValue,Varargs)
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(java.lang.String name)
+
+
Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke() instead. +

+

+
Parameters:
name - Name of the method to look up for invocation +
Returns:
All values returned from this:name() as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(), +method(String), +invokemethod(LuaValue), +invokemethod(String, LuaValue[]), +invokemethod(String, Varargs), +invokemethod(LuaValue, LuaValue[]), +invokemethod(LuaValue, Varargs)
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(LuaValue name)
+
+
Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke() instead. +

+

+
Parameters:
name - Name of the method to look up for invocation +
Returns:
All values returned from this:name() as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(), +method(LuaValue), +invokemethod(String), +invokemethod(String, LuaValue[]), +invokemethod(String, Varargs), +invokemethod(LuaValue, LuaValue[]), +invokemethod(LuaValue, Varargs)
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(java.lang.String name,
+                            Varargs args)
+
+
Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke(Varargs) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
args - Varargs containing arguments to supply to the called function after this +
Returns:
All values returned from this:name(args) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(Varargs), +method(String), +invokemethod(String), +invokemethod(LuaValue), +invokemethod(String, LuaValue[]), +invokemethod(LuaValue, LuaValue[]), +invokemethod(LuaValue, Varargs)
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(LuaValue name,
+                            Varargs args)
+
+
Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke(Varargs) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
args - Varargs containing arguments to supply to the called function after this +
Returns:
All values returned from this:name(args) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(Varargs), +method(String), +invokemethod(String), +invokemethod(LuaValue), +invokemethod(String, LuaValue[]), +invokemethod(String, Varargs), +invokemethod(LuaValue, LuaValue[])
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(java.lang.String name,
+                            LuaValue[] args)
+
+
Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke(Varargs) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
args - Array of LuaValue containing arguments to supply to the called function after this +
Returns:
All values returned from this:name(args) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(Varargs), +method(String), +invokemethod(String), +invokemethod(LuaValue), +invokemethod(String, Varargs), +invokemethod(LuaValue, LuaValue[]), +invokemethod(LuaValue, Varargs), +varargsOf(LuaValue[])
+
+
+
+ +

+invokemethod

+
+public Varargs invokemethod(LuaValue name,
+                            LuaValue[] args)
+
+
Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs. +

+ Look up this[name] and if it is a LuaFunction, + call it inserting this as an additional first argument, + and return all return values as a Varargs instance. + Otherwise, look for the CALL metatag and call that. +

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

+ To call this as a plain call, use invoke(Varargs) instead. +

+

+
Parameters:
name - Name of the method to look up for invocation
args - Array of LuaValue containing arguments to supply to the called function after this +
Returns:
All values returned from this:name(args) as a Varargs instance +
Throws: +
LuaError - if not a function and CALL is not defined, + or the invoked function throws a LuaError + or the invoked closure throw a lua error
See Also:
call(), +invoke(Varargs), +method(String), +invokemethod(String), +invokemethod(LuaValue), +invokemethod(String, LuaValue[]), +invokemethod(String, Varargs), +invokemethod(LuaValue, Varargs), +varargsOf(LuaValue[])
+
+
+
+ +

+callmt

+
+protected LuaValue callmt()
+
+
Get the metatag value for the CALL metatag, if it exists. +

+

+ +
Returns:
LuaValue value if metatag is defined +
Throws: +
LuaError - if CALL metatag is not defined.
+
+
+
+ +

+not

+
+public LuaValue not()
+
+
Unary not: return inverse boolean value (~this) as defined by lua not operator +

+

+ +
Returns:
TRUE if NIL or FALSE, otherwise FALSE
+
+
+
+ +

+neg

+
+public LuaValue neg()
+
+
Unary minus: return negative value (-this) as defined by lua unary minus operator +

+

+ +
Returns:
boolean inverse as LuaBoolean if boolean or nil, + numeric inverse as LuaNumber if numeric, + or metatag processing result if UNM metatag is defined +
Throws: +
LuaError - if this is not a table or string, and has no UNM metatag
+
+
+
+ +

+len

+
+public LuaValue len()
+
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+ +
Returns:
length as defined by the lua # operator + or metatag processing result +
Throws: +
LuaError - if this is not a table or string, and has no LEN metatag
+
+
+
+ +

+length

+
+public int length()
+
+
Length operator: return lua length of object (#this) including metatag processing as java int +

+

+ +
Returns:
length as defined by the lua # operator + or metatag processing result converted to java int using toint() +
Throws: +
LuaError - if this is not a table or string, and has no LEN metatag
+
+
+
+ +

+rawlen

+
+public int rawlen()
+
+
Get raw length of table or string without metatag processing. +

+

+ +
Returns:
the length of the table or string. +
Throws: +
LuaError - if this is not a table or string.
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
Overrides:
equals in class java.lang.Object
+
+
+
+
+
+
+ +

+eq

+
+public LuaValue eq(LuaValue val)
+
+
Equals: Perform equality comparison with another value + including metatag processing using EQ. +

+

+
Parameters:
val - The value to compare with. +
Returns:
TRUE if values are comparable and (this == rhs), + FALSE if comparable but not equal, + LuaValue if metatag processing occurs.
See Also:
eq_b(LuaValue), +raweq(LuaValue), +neq(LuaValue), +eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +EQ
+
+
+
+ +

+eq_b

+
+public boolean eq_b(LuaValue val)
+
+
Equals: Perform equality comparison with another value + including metatag processing using EQ, + and return java boolean +

+

+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this == rhs), + false if comparable but not equal, + result converted to java boolean if metatag processing occurs.
See Also:
eq(LuaValue), +raweq(LuaValue), +neq_b(LuaValue), +eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +EQ
+
+
+
+ +

+neq

+
+public LuaValue neq(LuaValue val)
+
+
Notquals: Perform inequality comparison with another value + including metatag processing using EQ. +

+

+
Parameters:
val - The value to compare with. +
Returns:
TRUE if values are comparable and (this != rhs), + FALSE if comparable but equal, + inverse of LuaValue converted to LuaBoolean if metatag processing occurs.
See Also:
eq(LuaValue), +raweq(LuaValue), +eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +EQ
+
+
+
+ +

+neq_b

+
+public boolean neq_b(LuaValue val)
+
+
Notquals: Perform inequality comparison with another value + including metatag processing using EQ. +

+

+
Parameters:
val - The value to compare with. +
Returns:
true if values are comparable and (this != rhs), + false if comparable but equal, + inverse of result converted to boolean if metatag processing occurs.
See Also:
eq_b(LuaValue), +raweq(LuaValue), +eqmtcall(LuaValue, LuaValue, LuaValue, LuaValue), +EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaValue val)
+
+
Equals: Perform direct equality comparison with another value + without metatag processing. +

+

+
Parameters:
val - The value to compare with. +
Returns:
true if (this == rhs), false otherwise
See Also:
eq(LuaValue), +raweq(LuaUserdata), +raweq(LuaString), +raweq(double), +raweq(int), +EQ
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaUserdata val)
+
+
Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing. +

+

+
Parameters:
val - The LuaUserdata to compare with. +
Returns:
true if this is userdata + and their metatables are the same using == + and their instances are equal using equals(Object), + otherwise false
See Also:
eq(LuaValue), +raweq(LuaValue)
+
+
+
+ +

+raweq

+
+public boolean raweq(LuaString val)
+
+
Equals: Perform direct equality comparison with a LuaString value + without metatag processing. +

+

+
Parameters:
val - The LuaString to compare with. +
Returns:
true if this is a LuaString + and their byte sequences match, + otherwise false
+
+
+
+ +

+raweq

+
+public boolean raweq(double val)
+
+
Equals: Perform direct equality comparison with a double value + without metatag processing. +

+

+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+raweq

+
+public boolean raweq(int val)
+
+
Equals: Perform direct equality comparison with a int value + without metatag processing. +

+

+
Parameters:
val - The double value to compare with. +
Returns:
true if this is a LuaNumber + whose value equals val, + otherwise false
+
+
+
+ +

+eqmtcall

+
+public static final boolean eqmtcall(LuaValue lhs,
+                                     LuaValue lhsmt,
+                                     LuaValue rhs,
+                                     LuaValue rhsmt)
+
+
Perform equality testing metatag processing +

+

+
Parameters:
lhs - left-hand-side of equality expression
lhsmt - metatag value for left-hand-side
rhs - right-hand-side of equality expression
rhsmt - metatag value for right-hand-side +
Returns:
true if metatag processing result is not NIL or FALSE +
Throws: +
LuaError - if metatag was not defined for either operand
See Also:
equals(Object), +eq(LuaValue), +raweq(LuaValue), +EQ
+
+
+
+ +

+add

+
+public LuaValue add(LuaValue rhs)
+
+
Add: Perform numeric add operation with another value + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the ADD metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(double rhs)
+
+
Add: Perform numeric add operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
add(LuaValue)
+
+
+
+ +

+add

+
+public LuaValue add(int rhs)
+
+
Add: Perform numeric add operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the add with +
Returns:
value of (this + rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
add(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(LuaValue rhs)
+
+
Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the SUB metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(double rhs)
+
+
Subtract: Perform numeric subtract operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
sub(LuaValue)
+
+
+
+ +

+sub

+
+public LuaValue sub(int rhs)
+
+
Subtract: Perform numeric subtract operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the subtract with +
Returns:
value of (this - rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
sub(LuaValue)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(double lhs)
+
+
Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
sub(LuaValue), +sub(double), +sub(int)
+
+
+
+ +

+subFrom

+
+public LuaValue subFrom(int lhs)
+
+
Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing sub(LuaValue) must be used +

+

+
Parameters:
lhs - The left-hand-side value from which to perform the subtraction +
Returns:
value of (lhs - this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
sub(LuaValue), +sub(double), +sub(int)
+
+
+
+ +

+mul

+
+public LuaValue mul(LuaValue rhs)
+
+
Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the MUL metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(double rhs)
+
+
Multiply: Perform numeric multiply operation with another value + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
mul(LuaValue)
+
+
+
+ +

+mul

+
+public LuaValue mul(int rhs)
+
+
Multiply: Perform numeric multiply operation with another value + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the multiply with +
Returns:
value of (this * rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
mul(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(LuaValue rhs)
+
+
Raise to power: Raise this value to a power + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the POW metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(double rhs)
+
+
Raise to power: Raise this value to a power + of double type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
pow(LuaValue)
+
+
+
+ +

+pow

+
+public LuaValue pow(int rhs)
+
+
Raise to power: Raise this value to a power + of int type with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The power to raise this value to +
Returns:
value of (this ^ rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
pow(LuaValue)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(double lhs)
+
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
pow(LuaValue), +pow(double), +pow(int)
+
+
+
+ +

+powWith

+
+public LuaValue powWith(int lhs)
+
+
Reverse-raise to power: Raise another value of double type to this power + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
lhs - The left-hand-side value which will be raised to this power +
Returns:
value of (lhs ^ this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
pow(LuaValue), +pow(double), +pow(int)
+
+
+
+ +

+div

+
+public LuaValue div(LuaValue rhs)
+
+
Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the DIV metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(double rhs)
+
+
Divide: Perform numeric divide operation by another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing div(LuaValue) must be used +

+

+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
div(LuaValue)
+
+
+
+ +

+div

+
+public LuaValue div(int rhs)
+
+
Divide: Perform numeric divide operation by another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing div(LuaValue) must be used +

+

+
Parameters:
rhs - The right-hand-side value to perform the divulo with +
Returns:
value of (this / rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
div(LuaValue)
+
+
+
+ +

+divInto

+
+public LuaValue divInto(double lhs)
+
+
Reverse-divide: Perform numeric divide operation into another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
lhs - The left-hand-side value which will be divided by this +
Returns:
value of (lhs / this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
div(LuaValue), +div(double), +div(int)
+
+
+
+ +

+mod

+
+public LuaValue mod(LuaValue rhs)
+
+
Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing. +

+ Each operand must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if both are numeric, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either operand is not a number or string convertible to number, + and neither has the MOD metatag defined
See Also:
arithmt(LuaValue, LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(double rhs)
+
+
Modulo: Perform numeric modulo operation with another value + of double type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing mod(LuaValue) must be used +

+

+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
mod(LuaValue)
+
+
+
+ +

+mod

+
+public LuaValue mod(int rhs)
+
+
Modulo: Perform numeric modulo operation with another value + of int type without metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+ For metatag processing mod(LuaValue) must be used +

+

+
Parameters:
rhs - The right-hand-side value to perform the modulo with +
Returns:
value of (this % rhs) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
mod(LuaValue)
+
+
+
+ +

+modFrom

+
+public LuaValue modFrom(double lhs)
+
+
Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing +

+ this must derive from LuaNumber + or derive from LuaString and be convertible to a number +

+

+
Parameters:
lhs - The left-hand-side value which will be modulo'ed by this +
Returns:
value of (lhs % this) if this is numeric +
Throws: +
LuaError - if this is not a number or string convertible to number
See Also:
mod(LuaValue), +mod(double), +mod(int)
+
+
+
+ +

+arithmt

+
+protected LuaValue arithmt(LuaValue tag,
+                           LuaValue op2)
+
+
Perform metatag processing for arithmetic operations. +

+ Finds the supplied metatag value for this or op2 and invokes it, + or throws LuaError if neither is defined. +

+

+
Parameters:
tag - The metatag to look up
op2 - The other operand value to perform the operation with +
Returns:
LuaValue resulting from metatag processing +
Throws: +
LuaError - if metatag was not defined for either operand
See Also:
add(LuaValue), +sub(LuaValue), +mul(LuaValue), +pow(LuaValue), +div(LuaValue), +mod(LuaValue), +ADD, +SUB, +MUL, +POW, +DIV, +MOD
+
+
+
+ +

+arithmtwith

+
+protected LuaValue arithmtwith(LuaValue tag,
+                               double op1)
+
+
Perform metatag processing for arithmetic operations when the left-hand-side is a number. +

+ Finds the supplied metatag value for this and invokes it, + or throws LuaError if neither is defined. +

+

+
Parameters:
tag - The metatag to look up
op1 - The value of the left-hand-side to perform the operation with +
Returns:
LuaValue resulting from metatag processing +
Throws: +
LuaError - if metatag was not defined for either operand
See Also:
add(LuaValue), +sub(LuaValue), +mul(LuaValue), +pow(LuaValue), +div(LuaValue), +mod(LuaValue), +ADD, +SUB, +MUL, +POW, +DIV, +MOD
+
+
+
+ +

+lt

+
+public LuaValue lt(LuaValue rhs)
+
+
Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this < rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LT metatag is defined.
See Also:
gteq_b(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(double rhs)
+
+
Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this < rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq_b(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt

+
+public LuaValue lt(int rhs)
+
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this < rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq_b(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(LuaValue rhs)
+
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LT metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(int rhs)
+
+
Less than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lt_b

+
+public boolean lt_b(double rhs)
+
+
Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this < rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LT metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(LuaValue rhs)
+
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this <= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LE metatag is defined.
See Also:
gteq_b(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(double rhs)
+
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this <= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq_b(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq

+
+public LuaValue lteq(int rhs)
+
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this <= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq_b(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(LuaValue rhs)
+
+
Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LE metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(int rhs)
+
+
Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+lteq_b

+
+public boolean lteq_b(double rhs)
+
+
Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this <= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(LuaValue rhs)
+
+
Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this > rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LE metatag is defined.
See Also:
gteq_b(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(double rhs)
+
+
Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this > rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq_b(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt

+
+public LuaValue gt(int rhs)
+
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this > rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq_b(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(LuaValue rhs)
+
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LE metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(int rhs)
+
+
Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LE metatag is defined.
See Also:
gteq(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gt_b

+
+public boolean gt_b(double rhs)
+
+
Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this > rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LE metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(LuaValue rhs)
+
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this >= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LT metatag is defined.
See Also:
gteq_b(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(double rhs)
+
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this >= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq_b(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq

+
+public LuaValue gteq(int rhs)
+
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
TRUE if (this >= rhs), FALSE if not, + or LuaValue if metatag processing occurs +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq_b(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(LuaValue rhs)
+
+
Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean. +

+ To be comparable, both operands must derive from LuaString + or both must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if either both operands are not a strings or both are not numbers + and no LT metatag is defined.
See Also:
gteq(LuaValue), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(int rhs)
+
+
Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq(int), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+gteq_b

+
+public boolean gteq_b(double rhs)
+
+
Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, + and returning java boolean. +

+ To be comparable, this must derive from LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
true if (this >= rhs), false if not, + and boolean interpreation of result if metatag processing occurs. +
Throws: +
LuaError - if this is not a number + and no LT metatag is defined.
See Also:
gteq(double), +comparemt(LuaValue, LuaValue)
+
+
+
+ +

+comparemt

+
+public LuaValue comparemt(LuaValue tag,
+                          LuaValue op1)
+
+
Perform metatag processing for comparison operations. +

+ Finds the supplied metatag value and invokes it, + or throws LuaError if none applies. +

+

+
Parameters:
tag - The metatag to look up
op1 - The operand with which to to perform the operation +
Returns:
LuaValue resulting from metatag processing +
Throws: +
LuaError - if metatag was not defined for either operand, + or if the operands are not the same type, + or the metatag values for the two operands are different.
See Also:
gt(LuaValue), +gteq(LuaValue), +lt(LuaValue), +lteq(LuaValue)
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaValue rhs)
+
+
Perform string comparison with another value + of any type + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string. +
Throws: +
LuaError - if either operand is not a string
+
+
+
+ +

+strcmp

+
+public int strcmp(LuaString rhs)
+
+
Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values. +

+ Only strings can be compared, meaning + each operand must derive from LuaString. +

+

+
Parameters:
rhs - The right-hand-side value to perform the comparison with +
Returns:
int < 0 for (this < rhs), int > 0 for (this > rhs), or 0 when same string. +
Throws: +
LuaError - if this is not a string
+
+
+
+ +

+concat

+
+public LuaValue concat(LuaValue rhs)
+
+
Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
LuaValue resulting from concatenation of (this .. rhs) +
Throws: +
LuaError - if either operand is not of an appropriate type, + such as nil or a table
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaValue lhs)
+
+
Reverse-concatenation: concatenate this value onto another value + whose type is unknwon + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this) +
Throws: +
LuaError - if either operand is not of an appropriate type, + such as nil or a table
See Also:
concat(LuaValue)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaNumber lhs)
+
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this) +
Throws: +
LuaError - if either operand is not of an appropriate type, + such as nil or a table
See Also:
concat(LuaValue)
+
+
+
+ +

+concatTo

+
+public LuaValue concatTo(LuaString lhs)
+
+
Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Parameters:
lhs - The left-hand-side value onto which this will be concatenated +
Returns:
LuaValue resulting from concatenation of (lhs .. this) +
Throws: +
LuaError - if either operand is not of an appropriate type, + such as nil or a table
See Also:
concat(LuaValue)
+
+
+
+ +

+buffer

+
+public Buffer buffer()
+
+
Convert the value to a Buffer for more efficient concatenation of + multiple strings. +

+

+ +
Returns:
Buffer instance containing the string or number
+
+
+
+ +

+concat

+
+public Buffer concat(Buffer rhs)
+
+
Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing. +

+ Only strings and numbers as represented can be concatenated, meaning + each operand must derive from LuaString or LuaNumber. +

+

+
Parameters:
rhs - The right-hand-side Buffer to perform the operation with +
Returns:
LuaString resulting from concatenation of (this .. rhs) +
Throws: +
LuaError - if either operand is not of an appropriate type, + such as nil or a table
+
+
+
+ +

+concatmt

+
+public LuaValue concatmt(LuaValue rhs)
+
+
Perform metatag processing for concatenation operations. +

+ Finds the CONCAT metatag value and invokes it, + or throws LuaError if it doesn't exist. +

+

+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
LuaValue resulting from metatag processing for CONCAT metatag. +
Throws: +
LuaError - if metatag was not defined for either operand
+
+
+
+ +

+and

+
+public LuaValue and(LuaValue rhs)
+
+
Perform boolean and with another operand, based on lua rules for boolean evaluation. + This returns either this or rhs depending on the boolean value for this. +

+

+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
this if this.toboolean() is false, rhs otherwise.
+
+
+
+ +

+or

+
+public LuaValue or(LuaValue rhs)
+
+
Perform boolean or with another operand, based on lua rules for boolean evaluation. + This returns either this or rhs depending on the boolean value for this. +

+

+
Parameters:
rhs - The right-hand-side value to perform the operation with +
Returns:
this if this.toboolean() is true, rhs otherwise.
+
+
+
+ +

+testfor_b

+
+public boolean testfor_b(LuaValue limit,
+                         LuaValue step)
+
+
Perform end-condition test in for-loop processing. +

+ Used in lua-bytecode to Java-bytecode conversion. +

+

+
Parameters:
limit - the numerical limit to complete the for loop
step - the numberical step size to use. +
Returns:
true if limit has not been reached, false otherwise.
+
+
+
+ +

+strvalue

+
+public LuaString strvalue()
+
+
Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not +

+

+ +
Returns:
LuaString corresponding to the value if a string or number +
Throws: +
LuaError - if not a string or number
+
+
+
+ +

+strongvalue

+
+public LuaValue strongvalue()
+
+
Return this value as a strong reference, or null if it was weak and is no longer referenced. +

+

+ +
Returns:
LuaValue referred to, or null if it was weak and is no longer referenced.
See Also:
WeakTable
+
+
+
+ +

+valueOf

+
+public static LuaBoolean valueOf(boolean b)
+
+
Convert java boolean to a LuaValue. +

+

+
Parameters:
b - boolean value to convert +
Returns:
TRUE if not or FALSE if false
+
+
+
+ +

+valueOf

+
+public static LuaInteger valueOf(int i)
+
+
Convert java int to a LuaValue. +

+

+
Parameters:
i - int value to convert +
Returns:
LuaInteger instance, possibly pooled, whose value is i
+
+
+
+ +

+valueOf

+
+public static LuaNumber valueOf(double d)
+
+
Convert java double to a LuaValue. + This may return a LuaInteger or LuaDouble depending + on the value supplied. +

+

+
Parameters:
d - double value to convert +
Returns:
LuaNumber instance, possibly pooled, whose value is d
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(java.lang.String s)
+
+
Convert java string to a LuaValue. +

+

+
Parameters:
s - String value to convert +
Returns:
LuaString instance, possibly pooled, whose value is s
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(byte[] bytes)
+
+
Convert bytes in an array to a LuaValue. +

+

+
Parameters:
bytes - byte array to convert +
Returns:
LuaString instance, possibly pooled, whose bytes are those in the supplied array
+
+
+
+ +

+valueOf

+
+public static LuaString valueOf(byte[] bytes,
+                                int off,
+                                int len)
+
+
Convert bytes in an array to a LuaValue. +

+

+
Parameters:
bytes - byte array to convert
off - offset into the byte array, starting at 0
len - number of bytes to include in the LuaString +
Returns:
LuaString instance, possibly pooled, whose bytes are those in the supplied array
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf()
+
+
Construct an empty LuaTable. +

+

+ +
Returns:
new LuaTable instance with no values and no metatable.
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf(Varargs varargs,
+                               int firstarg)
+
+
Construct a LuaTable initialized with supplied array values. +

+

+
Parameters:
varargs - Varargs containing the values to use in initialization
firstarg - the index of the first argument to use from the varargs, 1 being the first. +
Returns:
new LuaTable instance with sequential elements coming from the varargs.
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf(int narray,
+                               int nhash)
+
+
Construct an empty LuaTable preallocated to hold array and hashed elements +

+

+
Parameters:
narray - Number of array elements to preallocate
nhash - Number of hash elements to preallocate +
Returns:
new LuaTable instance with no values and no metatable, but preallocated for array and hashed elements.
+
+
+
+ +

+listOf

+
+public static LuaTable listOf(LuaValue[] unnamedValues)
+
+
Construct a LuaTable initialized with supplied array values. +

+

+
Parameters:
unnamedValues - array of LuaValue containing the values to use in initialization +
Returns:
new LuaTable instance with sequential elements coming from the array.
+
+
+
+ +

+listOf

+
+public static LuaTable listOf(LuaValue[] unnamedValues,
+                              Varargs lastarg)
+
+
Construct a LuaTable initialized with supplied array values. +

+

+
Parameters:
unnamedValues - array of LuaValue containing the first values to use in initialization
lastarg - Varargs containing additional values to use in initialization + to be put after the last unnamedValues element +
Returns:
new LuaTable instance with sequential elements coming from the array and varargs.
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf(LuaValue[] namedValues)
+
+
Construct a LuaTable initialized with supplied named values. +

+

+
Parameters:
namedValues - array of LuaValue containing the keys and values to use in initialization + in order {key-a, value-a, key-b, value-b, ...} +
Returns:
new LuaTable instance with non-sequential keys coming from the supplied array.
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf(LuaValue[] namedValues,
+                               LuaValue[] unnamedValues)
+
+
Construct a LuaTable initialized with supplied named values and sequential elements. + The named values will be assigned first, and the sequential elements will be assigned later, + possibly overwriting named values at the same slot if there are conflicts. +

+

+
Parameters:
namedValues - array of LuaValue containing the keys and values to use in initialization + in order {key-a, value-a, key-b, value-b, ...}
unnamedValues - array of LuaValue containing the sequenctial elements to use in initialization + in order {value-1, value-2, ...} , or null if there are none +
Returns:
new LuaTable instance with named and sequential values supplied.
+
+
+
+ +

+tableOf

+
+public static LuaTable tableOf(LuaValue[] namedValues,
+                               LuaValue[] unnamedValues,
+                               Varargs lastarg)
+
+
Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs. + The named values will be assigned first, and the sequential elements will be assigned later, + possibly overwriting named values at the same slot if there are conflicts. +

+

+
Parameters:
namedValues - array of LuaValue containing the keys and values to use in initialization + in order {key-a, value-a, key-b, value-b, ...}
unnamedValues - array of LuaValue containing the first sequenctial elements to use in initialization + in order {value-1, value-2, ...} , or null if there are none
lastarg - Varargs containing additional values to use in the sequential part of the initialization, + to be put after the last unnamedValues element +
Returns:
new LuaTable instance with named and sequential values supplied.
+
+
+
+ +

+userdataOf

+
+public static LuaUserdata userdataOf(java.lang.Object o)
+
+
Construct a LuaUserdata for an object. +

+

+
Parameters:
o - The java instance to be wrapped as userdata +
Returns:
LuaUserdata value wrapping the java instance.
+
+
+
+ +

+userdataOf

+
+public static LuaUserdata userdataOf(java.lang.Object o,
+                                     LuaValue metatable)
+
+
Construct a LuaUserdata for an object with a user supplied metatable. +

+

+
Parameters:
o - The java instance to be wrapped as userdata
metatable - The metatble to associate with the userdata instance. +
Returns:
LuaUserdata value wrapping the java instance.
+
+
+
+ +

+gettable

+
+protected static LuaValue gettable(LuaValue t,
+                                   LuaValue key)
+
+
get value from metatable operations, or NIL if not defined by metatables +

+

+
+
+
+
+ +

+settable

+
+protected static boolean settable(LuaValue t,
+                                  LuaValue key,
+                                  LuaValue value)
+
+
Perform field assignment including metatag processing. +

+

+
Parameters:
t - LuaValue on which value is being set, typically a table or something with the metatag NEWINDEX defined
key - LuaValue naming the field to assign
value - LuaValue the new value to assign to key +
Returns:
true if assignment or metatag processing succeeded, false otherwise +
Throws: +
LuaError - if there is a loop in metatag processing
+
+
+
+ +

+metatag

+
+public LuaValue metatag(LuaValue tag)
+
+
Get particular metatag, or return NIL if it doesn't exist +

+

+
Parameters:
tag - Metatag name to look up, typically a string such as + INDEX or NEWINDEX +
Returns:
LuaValue for tag reason, or NIL
+
+
+
+ +

+checkmetatag

+
+protected LuaValue checkmetatag(LuaValue tag,
+                                java.lang.String reason)
+
+
Get particular metatag, or throw LuaError if it doesn't exist +

+

+
Parameters:
tag - Metatag name to look up, typically a string such as + INDEX or NEWINDEX
reason - Description of error when tag lookup fails. +
Returns:
LuaValue that can be called +
Throws: +
LuaError - when the lookup fails.
+
+
+
+ +

+metatableOf

+
+protected static org.luaj.vm2.Metatable metatableOf(LuaValue mt)
+
+
Construct a Metatable instance from the given LuaValue +

+

+
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue[] v)
+
+
Construct a Varargs around an array of LuaValues. +

+

+
Parameters:
v - The array of LuaValues +
Returns:
Varargs wrapping the supplied values.
See Also:
varargsOf(LuaValue, Varargs), +varargsOf(LuaValue[], int, int)
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue[] v,
+                                Varargs r)
+
+
Construct a Varargs around an array of LuaValues. +

+

+
Parameters:
v - The array of LuaValues
r - Varargs contain values to include at the end +
Returns:
Varargs wrapping the supplied values.
See Also:
varargsOf(LuaValue[]), +varargsOf(LuaValue[], int, int, Varargs)
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue[] v,
+                                int offset,
+                                int length)
+
+
Construct a Varargs around an array of LuaValues. +

+

+
Parameters:
v - The array of LuaValues
offset - number of initial values to skip in the array
length - number of values to include from the array +
Returns:
Varargs wrapping the supplied values.
See Also:
varargsOf(LuaValue[]), +varargsOf(LuaValue[], int, int, Varargs)
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue[] v,
+                                int offset,
+                                int length,
+                                Varargs more)
+
+
Construct a Varargs around an array of LuaValues. + + Caller must ensure that array contents are not mutated after this call + or undefined behavior will result. +

+

+
Parameters:
v - The array of LuaValues
offset - number of initial values to skip in the array
length - number of values to include from the array
more - Varargs contain values to include at the end +
Returns:
Varargs wrapping the supplied values.
See Also:
varargsOf(LuaValue[], Varargs), +varargsOf(LuaValue[], int, int)
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue v,
+                                Varargs r)
+
+
Construct a Varargs around a set of 2 or more LuaValues. +

+ This can be used to wrap exactly 2 values, or a list consisting of 1 initial value + followed by another variable list of remaining values. +

+

+
Parameters:
v - First LuaValue in the Varargs
r - LuaValue supplying the 2rd value, + or Varargss supplying all values beyond the first +
Returns:
Varargs wrapping the supplied values.
+
+
+
+ +

+varargsOf

+
+public static Varargs varargsOf(LuaValue v1,
+                                LuaValue v2,
+                                Varargs v3)
+
+
Construct a Varargs around a set of 3 or more LuaValues. +

+ This can be used to wrap exactly 3 values, or a list consisting of 2 initial values + followed by another variable list of remaining values. +

+

+
Parameters:
v1 - First LuaValue in the Varargs
v2 - Second LuaValue in the Varargs
v3 - LuaValue supplying the 3rd value, + or Varargss supplying all values beyond the second +
Returns:
Varargs wrapping the supplied values.
+
+
+
+ +

+tailcallOf

+
+public static Varargs tailcallOf(LuaValue func,
+                                 Varargs args)
+
+
Construct a TailcallVarargs around a function and arguments. +

+ The tail call is not yet called or processing until the client invokes + TailcallVarargs.eval() which performs the tail call processing. +

+ This method is typically not used directly by client code. + Instead use one of the function invocation methods. +

+

+
Parameters:
func - LuaValue to be called as a tail call
args - Varargs containing the arguments to the call +
Returns:
TailcallVarargs to be used in tailcall oprocessing.
See Also:
call(), +invoke(), +method(LuaValue), +invokemethod(LuaValue)
+
+
+
+ +

+onInvoke

+
+public Varargs onInvoke(Varargs args)
+
+
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. +

+

+
Parameters:
args - the arguments to the call invocation. +
Returns:
Varargs the return values, possible a TailcallVarargs.
See Also:
call(), +invoke(), +method(LuaValue), +invokemethod(LuaValue)
+
+
+
+ +

+initupvalue1

+
+public void initupvalue1(LuaValue env)
+
+
Hook for implementations such as LuaJC to load the environment of the main chunk + into the first upvalue location. If the function has no upvalues or is not a main chunk, + calling this will be no effect. +

+

+
Parameters:
env - The environment to load into the first upvalue, if there is one.
+
+
+
+ +

+subargs

+
+public Varargs subargs(int start)
+
+
Create a Varargs instance containing arguments starting at index start +

+

+
Specified by:
subargs in class Varargs
+
+
+
Parameters:
start - the index from which to include arguments, where 1 is the first argument. +
Returns:
Varargs containing argument { start, start+1, ... , narg-start-1 }
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/OrphanedThread.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/OrphanedThread.html new file mode 100644 index 000000000..75f845fb5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/OrphanedThread.html @@ -0,0 +1,256 @@ + + + + + + +OrphanedThread (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class OrphanedThread

+
+java.lang.Object
+  extended by java.lang.Throwable
+      extended by java.lang.Error
+          extended by org.luaj.vm2.OrphanedThread
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class OrphanedThread
extends java.lang.Error
+ + +

+Error sublcass that indicates a lua thread that is no + longer referenced has been detected. +

+ The java thread in which this is thrown should correspond to a + LuaThread being used as a coroutine that could not possibly be + resumed again because there are no more references to the LuaThread with + which it is associated. Rather than locking up resources forever, this error + is thrown, and should fall through all the way to the thread's Thread.run() method. +

+ Java code mixed with the luaj vm should not catch this error because it may + occur when the coroutine is not running, so any processing done during error + handling could break the thread-safety of the application because other lua + processing could be going on in a different thread. +

+ +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
OrphanedThread() + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+OrphanedThread

+
+public OrphanedThread()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Print.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Print.html new file mode 100644 index 000000000..d8fa482cf --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Print.html @@ -0,0 +1,480 @@ + + + + + + +Print (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Print

+
+java.lang.Object
+  extended by org.luaj.vm2.Lua
+      extended by org.luaj.vm2.Print
+
+
+
+
public class Print
extends Lua
+ + +

+Debug helper class to pretty-print lua bytecodes. +

+ +

+

+
See Also:
Prototype, +LuaClosure
+
+ +

+ + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.String[]OPNAMES + +
+          String names for each lua opcode value.
+static java.io.PrintStreamps + +
+           
+ + + + + + + +
Fields inherited from class org.luaj.vm2.Lua
_VERSION, BITRK, iABC, iABx, iAsBx, iAx, LFIELDS_PER_FLUSH, LUA_MULTRET, luaP_opmodes, MASK_A, MASK_B, MASK_Bx, MASK_C, MASK_NOT_A, MASK_NOT_B, MASK_NOT_Bx, MASK_NOT_C, MASK_NOT_OP, MASK_OP, MAX_OP, MAXARG_A, MAXARG_Ax, MAXARG_B, MAXARG_Bx, MAXARG_C, MAXARG_sBx, MAXINDEXRK, NO_REG, NUM_OPCODES, OP_ADD, OP_AND, OP_CALL, OP_CLOSURE, OP_CONCAT, OP_DIV, OP_EQ, OP_EXTRAARG, OP_FORLOOP, OP_FORPREP, OP_GE, OP_GETTABLE, OP_GETTABUP, OP_GETUPVAL, OP_GT, OP_JMP, OP_LE, OP_LEN, OP_LOADBOOL, OP_LOADK, OP_LOADKX, OP_LOADNIL, OP_LT, OP_MOD, OP_MOVE, OP_MUL, OP_NEQ, OP_NEWTABLE, OP_NOT, OP_OR, OP_POW, OP_RETURN, OP_SELF, OP_SETLIST, OP_SETTABLE, OP_SETTABUP, OP_SETUPVAL, OP_SUB, OP_TAILCALL, OP_TEST, OP_TESTSET, OP_TFORCALL, OP_TFORLOOP, OP_UNM, OP_VARARG, OpArgK, OpArgN, OpArgR, OpArgU, POS_A, POS_Ax, POS_B, POS_Bx, POS_C, POS_OP, SIZE_A, SIZE_Ax, SIZE_B, SIZE_Bx, SIZE_C, SIZE_OP
+  + + + + + + + + + + +
+Constructor Summary
Print() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static voidprint(Prototype prototype) + +
+          Pretty-prints contents of a Prototype.
+static voidprintCode(Prototype f) + +
+          Print the code in a prototype
+static voidprintFunction(Prototype prototype, + boolean full) + +
+          Pretty-prints contents of a Prototype in short or long form.
+static voidprintOpCode(java.io.PrintStream ps, + Prototype f, + int pc) + +
+          Print an opcode in a prototype
+static voidprintOpCode(Prototype f, + int pc) + +
+          Print an opcode in a prototype
+static voidprintStack(LuaValue[] stack, + int top, + Varargs varargs) + +
+           
+static voidprintState(LuaClosure cl, + int pc, + LuaValue[] stack, + int top, + Varargs varargs) + +
+          Print the state of a LuaClosure that is being executed
+ + + + + + + +
Methods inherited from class org.luaj.vm2.Lua
chunkid, GET_OPCODE, GETARG_A, GETARG_Ax, GETARG_B, GETARG_Bx, GETARG_C, GETARG_sBx, getBMode, getCMode, getOpMode, INDEXK, ISK, RKASK, testAMode, testTMode
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+ps

+
+public static java.io.PrintStream ps
+
+
+
+
+
+ +

+OPNAMES

+
+public static final java.lang.String[] OPNAMES
+
+
String names for each lua opcode value. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+Print

+
+public Print()
+
+
+ + + + + + + + +
+Method Detail
+ +

+printCode

+
+public static void printCode(Prototype f)
+
+
Print the code in a prototype +

+

+
Parameters:
f - the Prototype
+
+
+
+ +

+printOpCode

+
+public static void printOpCode(Prototype f,
+                               int pc)
+
+
Print an opcode in a prototype +

+

+
Parameters:
f - the Prototype
pc - the program counter to look up and print
+
+
+
+ +

+printOpCode

+
+public static void printOpCode(java.io.PrintStream ps,
+                               Prototype f,
+                               int pc)
+
+
Print an opcode in a prototype +

+

+
Parameters:
ps - the PrintStream to print to
f - the Prototype
pc - the program counter to look up and print
+
+
+
+ +

+print

+
+public static void print(Prototype prototype)
+
+
Pretty-prints contents of a Prototype. +

+

+
Parameters:
prototype - Prototype to print.
+
+
+
+ +

+printFunction

+
+public static void printFunction(Prototype prototype,
+                                 boolean full)
+
+
Pretty-prints contents of a Prototype in short or long form. +

+

+
Parameters:
prototype - Prototype to print.
full - true to print all fields, false to print short form.
+
+
+
+ +

+printState

+
+public static void printState(LuaClosure cl,
+                              int pc,
+                              LuaValue[] stack,
+                              int top,
+                              Varargs varargs)
+
+
Print the state of a LuaClosure that is being executed +

+

+
Parameters:
cl - the LuaClosure
pc - the program counter
stack - the stack of LuaValue
top - the top of the stack
varargs - any Varargs value that may apply
+
+
+
+ +

+printStack

+
+public static void printStack(LuaValue[] stack,
+                              int top,
+                              Varargs varargs)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Prototype.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Prototype.html new file mode 100644 index 000000000..e09e70196 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Prototype.html @@ -0,0 +1,600 @@ + + + + + + +Prototype (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Prototype

+
+java.lang.Object
+  extended by org.luaj.vm2.Prototype
+
+
+
+
public class Prototype
extends java.lang.Object
+ + +

+Prototype representing compiled lua code. + +

+ This is both a straight translation of the corresponding C type, + and the main data structure for execution of compiled lua bytecode. + +

+ Generally, the Prototype is not constructed directly is an intermediate result + as lua code is loaded using Globals.load(java.io.Reader, String): +

 Globals globals = JsePlatform.standardGlobals();
+ globals.load( new StringReader("print 'hello'"), "main.lua" ).call(); 
+  
+ +

+ To create a Prototype directly, a compiler such as + LuaC may be used: +

 InputStream is = new ByteArrayInputStream("print('hello,world')".getBytes());
+ Prototype p = LuaC.instance.compile(is, "script");
+ 
+ + To simplify loading, the Globals.compilePrototype(java.io.InputStream, String) method may be used: +
 Prototype p = globals.compileProtoytpe(is, "script");
+ 
+ + It may also be loaded from a Reader via Globals.compilePrototype(java.io.Reader, String): +
 Prototype p = globals.compileProtoytpe(new StringReader(script), "script");
+ 
+ + To un-dump a binary file known to be a binary lua file that has been dumped to a string, + the Globals.Undumper interface may be used: +
 FileInputStream lua_binary_file = new FileInputStream("foo.lc");  // Known to be compiled lua.
+ Prototype p = globals.undumper.undump(lua_binary_file, "foo.lua");
+ 
+ + To execute the code represented by the Prototype it must be supplied to + the constructor of a LuaClosure: +
 Globals globals = JsePlatform.standardGlobals();
+ LuaClosure f = new LuaClosure(p, globals);
+ f.call();
+ 
+ + To simplify the debugging of prototype values, the contents may be printed using Print.print(org.luaj.vm2.Prototype): +
 Print.print(p);
+ 
+

+

+ +

+

+
See Also:
LuaClosure, +Globals, +Globals.undumper, +Globals.compiler, +Print.print(org.luaj.vm2.Prototype)
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ int[]code + +
+           
+ intis_vararg + +
+           
+ LuaValue[]k + +
+           
+ intlastlinedefined + +
+           
+ intlinedefined + +
+           
+ int[]lineinfo + +
+           
+ LocVars[]locvars + +
+           
+ intmaxstacksize + +
+           
+ intnumparams + +
+           
+ Prototype[]p + +
+           
+ LuaStringsource + +
+           
+ Upvaldesc[]upvalues + +
+           
+  + + + + + + + + + + + + + +
+Constructor Summary
Prototype() + +
+           
Prototype(int n_upvalues) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaStringgetlocalname(int number, + int pc) + +
+          Get the name of a local variable.
+ java.lang.Stringshortsource() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+k

+
+public LuaValue[] k
+
+
+
+
+
+ +

+code

+
+public int[] code
+
+
+
+
+
+ +

+p

+
+public Prototype[] p
+
+
+
+
+
+ +

+lineinfo

+
+public int[] lineinfo
+
+
+
+
+
+ +

+locvars

+
+public LocVars[] locvars
+
+
+
+
+
+ +

+upvalues

+
+public Upvaldesc[] upvalues
+
+
+
+
+
+ +

+source

+
+public LuaString source
+
+
+
+
+
+ +

+linedefined

+
+public int linedefined
+
+
+
+
+
+ +

+lastlinedefined

+
+public int lastlinedefined
+
+
+
+
+
+ +

+numparams

+
+public int numparams
+
+
+
+
+
+ +

+is_vararg

+
+public int is_vararg
+
+
+
+
+
+ +

+maxstacksize

+
+public int maxstacksize
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+Prototype

+
+public Prototype()
+
+
+
+ +

+Prototype

+
+public Prototype(int n_upvalues)
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+getlocalname

+
+public LuaString getlocalname(int number,
+                              int pc)
+
+
Get the name of a local variable. +

+

+
Parameters:
number - the local variable number to look up
pc - the program counter +
Returns:
the name, or null if not found
+
+
+
+ +

+shortsource

+
+public java.lang.String shortsource()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/TailcallVarargs.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/TailcallVarargs.html new file mode 100644 index 000000000..30db74424 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/TailcallVarargs.html @@ -0,0 +1,442 @@ + + + + + + +TailcallVarargs (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class TailcallVarargs

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.TailcallVarargs
+
+
+
+
public class TailcallVarargs
extends Varargs
+ + +

+Subclass of Varargs that represents a lua tail call + in a Java library function execution environment. +

+ Since Java doesn't have direct support for tail calls, + any lua function whose Prototype contains the + Lua.OP_TAILCALL bytecode needs a mechanism + for tail calls when converting lua-bytecode to java-bytecode. +

+ The tail call holds the next function and arguments, + and the client a call to eval() executes the function + repeatedly until the tail calls are completed. +

+ Normally, users of luaj need not concern themselves with the + details of this mechanism, as it is built into the core + execution framework. +

+ +

+

+
See Also:
Prototype, +LuaJC
+
+ +

+ + + + + + + + + + + + + + +
+Constructor Summary
TailcallVarargs(LuaValue object, + LuaValue methodname, + Varargs args) + +
+           
TailcallVarargs(LuaValue f, + Varargs args) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuearg(int i) + +
+          Get the n-th argument value (1-based).
+ LuaValuearg1() + +
+          Get the first argument in the list.
+ Varargseval() + +
+          Evaluate any pending tail call and return result.
+ booleanisTailcall() + +
+          Return true if this is a TailcallVarargs
+ intnarg() + +
+          Get the number of arguments, or 0 if there are none.
+ Varargssubargs(int start) + +
+          Create a Varargs instance containing arguments starting at index start
+ + + + + + + +
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, isfunction, isnil, isnoneornil, isnumber, isstring, istable, 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, tojstring, tolong, toshort, toString, touserdata, touserdata, type
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+TailcallVarargs

+
+public TailcallVarargs(LuaValue f,
+                       Varargs args)
+
+
+
+ +

+TailcallVarargs

+
+public TailcallVarargs(LuaValue object,
+                       LuaValue methodname,
+                       Varargs args)
+
+
+ + + + + + + + +
+Method Detail
+ +

+isTailcall

+
+public boolean isTailcall()
+
+
Description copied from class: Varargs
+
Return true if this is a TailcallVarargs +

+

+
Overrides:
isTailcall in class Varargs
+
+
+ +
Returns:
true if a tail call, false otherwise
+
+
+
+ +

+eval

+
+public Varargs eval()
+
+
Description copied from class: Varargs
+
Evaluate any pending tail call and return result. +

+

+
Overrides:
eval in class Varargs
+
+
+ +
Returns:
the evaluated tail call result
+
+
+
+ +

+arg

+
+public LuaValue arg(int i)
+
+
Description copied from class: Varargs
+
Get the n-th argument value (1-based). +

+

+
Specified by:
arg in class Varargs
+
+
+
Parameters:
i - the index of the argument to get, 1 is the first argument +
Returns:
Value at position i, or LuaValue.NIL if there is none.
See Also:
Varargs.arg1(), +LuaValue.NIL
+
+
+
+ +

+arg1

+
+public LuaValue arg1()
+
+
Description copied from class: Varargs
+
Get the first argument in the list. +

+

+
Specified by:
arg1 in class Varargs
+
+
+ +
Returns:
LuaValue which is first in the list, or LuaValue.NIL if there are no values.
See Also:
Varargs.arg(int), +LuaValue.NIL
+
+
+
+ +

+narg

+
+public int narg()
+
+
Description copied from class: Varargs
+
Get the number of arguments, or 0 if there are none. +

+

+
Specified by:
narg in class Varargs
+
+
+ +
Returns:
number of arguments.
+
+
+
+ +

+subargs

+
+public Varargs subargs(int start)
+
+
Description copied from class: Varargs
+
Create a Varargs instance containing arguments starting at index start +

+

+
Specified by:
subargs in class Varargs
+
+
+
Parameters:
start - the index from which to include arguments, where 1 is the first argument. +
Returns:
Varargs containing argument { start, start+1, ... , narg-start-1 }
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/UpValue.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/UpValue.html new file mode 100644 index 000000000..b3d6c3426 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/UpValue.html @@ -0,0 +1,355 @@ + + + + + + +UpValue (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class UpValue

+
+java.lang.Object
+  extended by org.luaj.vm2.UpValue
+
+
+
+
public final class UpValue
extends java.lang.Object
+ + +

+Upvalue used with Closure formulation +

+

+ +

+

+
See Also:
LuaClosure, +Prototype
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
UpValue(LuaValue[] stack, + int index) + +
+          Create an upvalue relative to a stack
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclose() + +
+          Close this upvalue so it is no longer on the stack
+ LuaValuegetValue() + +
+          Get the value of the upvalue
+ voidsetValue(LuaValue value) + +
+          Set the value of the upvalue
+ java.lang.Stringtojstring() + +
+          Convert this upvalue to a Java String
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+UpValue

+
+public UpValue(LuaValue[] stack,
+               int index)
+
+
Create an upvalue relative to a stack +

+

+
Parameters:
stack - the stack
index - the index on the stack for the upvalue
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Convert this upvalue to a Java String +

+

+ +
Returns:
the Java String for this upvalue.
See Also:
LuaValue.tojstring()
+
+
+
+ +

+getValue

+
+public final LuaValue getValue()
+
+
Get the value of the upvalue +

+

+ +
Returns:
the LuaValue for this upvalue
+
+
+
+ +

+setValue

+
+public final void setValue(LuaValue value)
+
+
Set the value of the upvalue +

+

+
Parameters:
value - the LuaValue to set it to
+
+
+
+ +

+close

+
+public final void close()
+
+
Close this upvalue so it is no longer on the stack +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Upvaldesc.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Upvaldesc.html new file mode 100644 index 000000000..06b89c881 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Upvaldesc.html @@ -0,0 +1,331 @@ + + + + + + +Upvaldesc (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Upvaldesc

+
+java.lang.Object
+  extended by org.luaj.vm2.Upvaldesc
+
+
+
+
public class Upvaldesc
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + + + + + + + + + +
+Field Summary
+ shortidx + +
+           
+ booleaninstack + +
+           
+ LuaStringname + +
+           
+  + + + + + + + + + + +
+Constructor Summary
Upvaldesc(LuaString name, + boolean instack, + int idx) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+name

+
+public LuaString name
+
+
+
+
+
+ +

+instack

+
+public final boolean instack
+
+
+
+
+
+ +

+idx

+
+public final short idx
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+Upvaldesc

+
+public Upvaldesc(LuaString name,
+                 boolean instack,
+                 int idx)
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/Varargs.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Varargs.html new file mode 100644 index 000000000..e34f91b54 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/Varargs.html @@ -0,0 +1,1745 @@ + + + + + + +Varargs (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class Varargs

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+
+
+
Direct Known Subclasses:
LuaValue, TailcallVarargs
+
+
+
+
public abstract class Varargs
extends java.lang.Object
+ + +

+Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values. +

+ To construct varargs, use one of the static methods such as + LuaValue.varargsOf(LuaValue,LuaValue) +

+

+ Any LuaValue can be used as a stand-in for Varargs, for both calls and return values. + When doing so, nargs() will return 1 and arg1() or arg(1) will return this. + This simplifies the case when calling or implementing varargs functions with only + 1 argument or 1 return value. +

+ Varargs can also be derived from other varargs by appending to the front with a call + such as LuaValue.varargsOf(LuaValue,Varargs) + or by taking a portion of the args using Varargs.subargs(int start) +

+

+ +

+

+
See Also:
LuaValue.varargsOf(LuaValue[]), +LuaValue.varargsOf(LuaValue, Varargs), +LuaValue.varargsOf(LuaValue[], Varargs), +LuaValue.varargsOf(LuaValue, LuaValue, Varargs), +LuaValue.varargsOf(LuaValue[], int, int), +LuaValue.varargsOf(LuaValue[], int, int, Varargs), +LuaValue.subargs(int)
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
Varargs() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+abstract  LuaValuearg(int i) + +
+          Get the n-th argument value (1-based).
+abstract  LuaValuearg1() + +
+          Get the first argument in the list.
+ voidargcheck(boolean test, + int i, + java.lang.String msg) + +
+          Performs test on argument i as a LuaValue when a user-supplied assertion passes, or throw an error.
+ booleancheckboolean(int i) + +
+          Return argument i as a boolean value, or throw an error if any other type.
+ LuaClosurecheckclosure(int i) + +
+          Return argument i as a closure, or throw an error if any other type.
+ doublecheckdouble(int i) + +
+          Return argument i as a double, or throw an error if it cannot be converted to one.
+ LuaFunctioncheckfunction(int i) + +
+          Return argument i as a function, or throw an error if an incompatible type.
+ intcheckint(int i) + +
+          Return argument i as a java int value, discarding any fractional part, or throw an error if not a number.
+ LuaIntegercheckinteger(int i) + +
+          Return argument i as a java int value, or throw an error if not a number or is not representable by a java int.
+ java.lang.Stringcheckjstring(int i) + +
+          Return argument i as a java String if a string or number, or throw an error if any other type
+ longchecklong(int i) + +
+          Return argument i as a java long value, discarding any fractional part, or throw an error if not a number.
+ LuaValuechecknotnil(int i) + +
+          Return argument i as a LuaValue if it is not nil, or throw an error if it is nil.
+ LuaNumberchecknumber(int i) + +
+          Return argument i as a LuaNumber, or throw an error if not a number or string that can be converted to a number.
+ LuaStringcheckstring(int i) + +
+          Return argument i as a LuaString if a string or number, or throw an error if any other type
+ LuaTablechecktable(int i) + +
+          Return argument i as a LuaTable if a lua table, or throw an error if any other type.
+ LuaThreadcheckthread(int i) + +
+          Return argument i as a LuaThread if a lua thread, or throw an error if any other type.
+ java.lang.Objectcheckuserdata(int i) + +
+          Return argument i as a java Object if a userdata, or throw an error if any other type.
+ java.lang.Objectcheckuserdata(int i, + java.lang.Class c) + +
+          Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + or throw an error if any other type.
+ LuaValuecheckvalue(int i) + +
+          Return argument i as a LuaValue if it exists, or throw an error.
+ Varargseval() + +
+          Evaluate any pending tail call and return result.
+ booleanisfunction(int i) + +
+          Tests if argument i is a function.
+ booleanisnil(int i) + +
+          Tests if argument i is nil.
+ booleanisnoneornil(int i) + +
+          Return true if there is no argument or nil at argument i.
+ booleanisnumber(int i) + +
+          Tests if argument i is a number.
+ booleanisstring(int i) + +
+          Tests if argument i is a string.
+ booleanistable(int i) + +
+          Tests if argument i is a table.
+ booleanisTailcall() + +
+          Return true if this is a TailcallVarargs
+ booleanisthread(int i) + +
+          Tests if argument i is a thread.
+ booleanisuserdata(int i) + +
+          Tests if argument i is a userdata.
+ booleanisvalue(int i) + +
+          Tests if a value exists at argument i.
+abstract  intnarg() + +
+          Get the number of arguments, or 0 if there are none.
+ booleanoptboolean(int i, + boolean defval) + +
+          Return argument i as a boolean value, defval if nil, or throw a LuaError if any other type.
+ LuaClosureoptclosure(int i, + LuaClosure defval) + +
+          Return argument i as a closure, defval if nil, or throw a LuaError if any other type.
+ doubleoptdouble(int i, + double defval) + +
+          Return argument i as a double, defval if nil, or throw a LuaError if it cannot be converted to one.
+ LuaFunctionoptfunction(int i, + LuaFunction defval) + +
+          Return argument i as a function, defval if nil, or throw a LuaError if an incompatible type.
+ intoptint(int i, + int defval) + +
+          Return argument i as a java int value, discarding any fractional part, defval if nil, or throw a LuaError if not a number.
+ LuaIntegeroptinteger(int i, + LuaInteger defval) + +
+          Return argument i as a java int value, defval if nil, or throw a LuaError if not a number or is not representable by a java int.
+ java.lang.Stringoptjstring(int i, + java.lang.String defval) + +
+          Return argument i as a java String if a string or number, defval if nil, or throw a LuaError if any other type
+ longoptlong(int i, + long defval) + +
+          Return argument i as a java long value, discarding any fractional part, defval if nil, or throw a LuaError if not a number.
+ LuaNumberoptnumber(int i, + LuaNumber defval) + +
+          Return argument i as a LuaNumber, defval if nil, or throw a LuaError if not a number or string that can be converted to a number.
+ LuaStringoptstring(int i, + LuaString defval) + +
+          Return argument i as a LuaString if a string or number, defval if nil, or throw a LuaError if any other type
+ LuaTableopttable(int i, + LuaTable defval) + +
+          Return argument i as a LuaTable if a lua table, defval if nil, or throw a LuaError if any other type.
+ LuaThreadoptthread(int i, + LuaThread defval) + +
+          Return argument i as a LuaThread if a lua thread, defval if nil, or throw a LuaError if any other type.
+ java.lang.Objectoptuserdata(int i, + java.lang.Class c, + java.lang.Object defval) + +
+          Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + defval if nil, or throw a LuaError if any other type.
+ java.lang.Objectoptuserdata(int i, + java.lang.Object defval) + +
+          Return argument i as a java Object if a userdata, defval if nil, or throw a LuaError if any other type.
+ LuaValueoptvalue(int i, + LuaValue defval) + +
+          Return argument i as a LuaValue if it exists, or defval.
+abstract  Varargssubargs(int start) + +
+          Create a Varargs instance containing arguments starting at index start
+ booleantoboolean(int i) + +
+          Convert argument i to java boolean based on lua rules for boolean evaluation.
+ bytetobyte(int i) + +
+          Return argument i as a java byte value, discarding any fractional part and truncating, + or 0 if not a number.
+ chartochar(int i) + +
+          Return argument i as a java char value, discarding any fractional part and truncating, + or 0 if not a number.
+ doubletodouble(int i) + +
+          Return argument i as a java double value or 0 if not a number.
+ floattofloat(int i) + +
+          Return argument i as a java float value, discarding excess fractional part and truncating, + or 0 if not a number.
+ inttoint(int i) + +
+          Return argument i as a java int value, discarding any fractional part and truncating, + or 0 if not a number.
+ java.lang.Stringtojstring() + +
+          Convert the list of varargs values to a human readable java String.
+ java.lang.Stringtojstring(int i) + +
+          Return argument i as a java String based on the type of the argument.
+ longtolong(int i) + +
+          Return argument i as a java long value, discarding any fractional part and truncating, + or 0 if not a number.
+ shorttoshort(int i) + +
+          Return argument i as a java short value, discarding any fractional part and truncating, + or 0 if not a number.
+ java.lang.StringtoString() + +
+          Convert the value or values to a java String using Varargs.tojstring()
+ java.lang.Objecttouserdata(int i) + +
+          Return argument i as a java Object if a userdata, or null.
+ java.lang.Objecttouserdata(int i, + java.lang.Class c) + +
+          Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, or null.
+ inttype(int i) + +
+          Gets the type of argument i
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Varargs

+
+public Varargs()
+
+
+ + + + + + + + +
+Method Detail
+ +

+arg

+
+public abstract LuaValue arg(int i)
+
+
Get the n-th argument value (1-based). +

+

+
Parameters:
i - the index of the argument to get, 1 is the first argument +
Returns:
Value at position i, or LuaValue.NIL if there is none.
See Also:
arg1(), +LuaValue.NIL
+
+
+
+ +

+narg

+
+public abstract int narg()
+
+
Get the number of arguments, or 0 if there are none. +

+

+ +
Returns:
number of arguments.
+
+
+
+ +

+arg1

+
+public abstract LuaValue arg1()
+
+
Get the first argument in the list. +

+

+ +
Returns:
LuaValue which is first in the list, or LuaValue.NIL if there are no values.
See Also:
arg(int), +LuaValue.NIL
+
+
+
+ +

+eval

+
+public Varargs eval()
+
+
Evaluate any pending tail call and return result. +

+

+ +
Returns:
the evaluated tail call result
+
+
+
+ +

+isTailcall

+
+public boolean isTailcall()
+
+
Return true if this is a TailcallVarargs +

+

+ +
Returns:
true if a tail call, false otherwise
+
+
+
+ +

+type

+
+public int type(int i)
+
+
Gets the type of argument i +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
int value corresponding to one of the LuaValue integer type values
See Also:
LuaValue.TNIL, +LuaValue.TBOOLEAN, +LuaValue.TNUMBER, +LuaValue.TSTRING, +LuaValue.TTABLE, +LuaValue.TFUNCTION, +LuaValue.TUSERDATA, +LuaValue.TTHREAD
+
+
+
+ +

+isnil

+
+public boolean isnil(int i)
+
+
Tests if argument i is nil. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument is nil or does not exist, false otherwise
See Also:
LuaValue.TNIL
+
+
+
+ +

+isfunction

+
+public boolean isfunction(int i)
+
+
Tests if argument i is a function. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a function or closure, false otherwise
See Also:
LuaValue.TFUNCTION
+
+
+
+ +

+isnumber

+
+public boolean isnumber(int i)
+
+
Tests if argument i is a number. + Since anywhere a number is required, a string can be used that + is a number, this will return true for both numbers and + strings that can be interpreted as numbers. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a number or + string that can be interpreted as a number, false otherwise
See Also:
LuaValue.TNUMBER, +LuaValue.TSTRING
+
+
+
+ +

+isstring

+
+public boolean isstring(int i)
+
+
Tests if argument i is a string. + Since all lua numbers can be used where strings are used, + this will return true for both strings and numbers. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a string or number, false otherwise
See Also:
LuaValue.TNUMBER, +LuaValue.TSTRING
+
+
+
+ +

+istable

+
+public boolean istable(int i)
+
+
Tests if argument i is a table. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a lua table, false otherwise
See Also:
LuaValue.TTABLE
+
+
+
+ +

+isthread

+
+public boolean isthread(int i)
+
+
Tests if argument i is a thread. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a lua thread, false otherwise
See Also:
LuaValue.TTHREAD
+
+
+
+ +

+isuserdata

+
+public boolean isuserdata(int i)
+
+
Tests if argument i is a userdata. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists and is a userdata, false otherwise
See Also:
LuaValue.TUSERDATA
+
+
+
+ +

+isvalue

+
+public boolean isvalue(int i)
+
+
Tests if a value exists at argument i. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if the argument exists, false otherwise
+
+
+
+ +

+optboolean

+
+public boolean optboolean(int i,
+                          boolean defval)
+
+
Return argument i as a boolean value, defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if argument i is boolean true, false if it is false, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a lua boolean
+
+
+
+ +

+optclosure

+
+public LuaClosure optclosure(int i,
+                             LuaClosure defval)
+
+
Return argument i as a closure, defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaClosure if argument i is a closure, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a lua closure
+
+
+
+ +

+optdouble

+
+public double optdouble(int i,
+                        double defval)
+
+
Return argument i as a double, defval if nil, or throw a LuaError if it cannot be converted to one. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
java double value if argument i is a number or string that converts to a number, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+optfunction

+
+public LuaFunction optfunction(int i,
+                               LuaFunction defval)
+
+
Return argument i as a function, defval if nil, or throw a LuaError if an incompatible type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaValue that can be called if argument i is lua function or closure, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a lua function or closure
+
+
+
+ +

+optint

+
+public int optint(int i,
+                  int defval)
+
+
Return argument i as a java int value, discarding any fractional part, defval if nil, or throw a LuaError if not a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
int value with fraction discarded and truncated if necessary if argument i is number, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+optinteger

+
+public LuaInteger optinteger(int i,
+                             LuaInteger defval)
+
+
Return argument i as a java int value, defval if nil, or throw a LuaError if not a number or is not representable by a java int. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaInteger value that fits in a java int without rounding, or defval if not supplied or nil +
Throws: +
LuaError - if the argument cannot be represented by a java int value
+
+
+
+ +

+optlong

+
+public long optlong(int i,
+                    long defval)
+
+
Return argument i as a java long value, discarding any fractional part, defval if nil, or throw a LuaError if not a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
long value with fraction discarded and truncated if necessary if argument i is number, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+optnumber

+
+public LuaNumber optnumber(int i,
+                           LuaNumber defval)
+
+
Return argument i as a LuaNumber, defval if nil, or throw a LuaError if not a number or string that can be converted to a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument, or defval if not supplied or nil +
Returns:
LuaNumber if argument i is number or can be converted to a number +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+optjstring

+
+public java.lang.String optjstring(int i,
+                                   java.lang.String defval)
+
+
Return argument i as a java String if a string or number, defval if nil, or throw a LuaError if any other type +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
String value if argument i is a string or number, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a string or number
+
+
+
+ +

+optstring

+
+public LuaString optstring(int i,
+                           LuaString defval)
+
+
Return argument i as a LuaString if a string or number, defval if nil, or throw a LuaError if any other type +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaString value if argument i is a string or number, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a string or number
+
+
+
+ +

+opttable

+
+public LuaTable opttable(int i,
+                         LuaTable defval)
+
+
Return argument i as a LuaTable if a lua table, defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaTable value if a table, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a lua table
+
+
+
+ +

+optthread

+
+public LuaThread optthread(int i,
+                           LuaThread defval)
+
+
Return argument i as a LuaThread if a lua thread, defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaThread value if a thread, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a lua thread
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(int i,
+                                    java.lang.Object defval)
+
+
Return argument i as a java Object if a userdata, defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
java Object value if argument i is a userdata, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a userdata
+
+
+
+ +

+optuserdata

+
+public java.lang.Object optuserdata(int i,
+                                    java.lang.Class c,
+                                    java.lang.Object defval)
+
+
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + defval if nil, or throw a LuaError if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument
c - the class to which the userdata instance must be assignable +
Returns:
java Object value if argument i is a userdata whose instance Class c or a subclass, or defval if not supplied or nil +
Throws: +
LuaError - if the argument is not a userdata or from whose instance c is not assignable
+
+
+
+ +

+optvalue

+
+public LuaValue optvalue(int i,
+                         LuaValue defval)
+
+
Return argument i as a LuaValue if it exists, or defval. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaValue value if the argument exists, defval if not +
Throws: +
LuaError - if the argument does not exist.
+
+
+
+ +

+checkboolean

+
+public boolean checkboolean(int i)
+
+
Return argument i as a boolean value, or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if argument i is boolean true, false if it is false +
Throws: +
LuaError - if the argument is not a lua boolean
+
+
+
+ +

+checkclosure

+
+public LuaClosure checkclosure(int i)
+
+
Return argument i as a closure, or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaClosure if argument i is a closure. +
Throws: +
LuaError - if the argument is not a lua closure
+
+
+
+ +

+checkdouble

+
+public double checkdouble(int i)
+
+
Return argument i as a double, or throw an error if it cannot be converted to one. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
java double value if argument i is a number or string that converts to a number +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+checkfunction

+
+public LuaFunction checkfunction(int i)
+
+
Return argument i as a function, or throw an error if an incompatible type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaValue that can be called if argument i is lua function or closure +
Throws: +
LuaError - if the argument is not a lua function or closure
+
+
+
+ +

+checkint

+
+public int checkint(int i)
+
+
Return argument i as a java int value, discarding any fractional part, or throw an error if not a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
int value with fraction discarded and truncated if necessary if argument i is number +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+checkinteger

+
+public LuaInteger checkinteger(int i)
+
+
Return argument i as a java int value, or throw an error if not a number or is not representable by a java int. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaInteger value that fits in a java int without rounding +
Throws: +
LuaError - if the argument cannot be represented by a java int value
+
+
+
+ +

+checklong

+
+public long checklong(int i)
+
+
Return argument i as a java long value, discarding any fractional part, or throw an error if not a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
long value with fraction discarded and truncated if necessary if argument i is number +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+checknumber

+
+public LuaNumber checknumber(int i)
+
+
Return argument i as a LuaNumber, or throw an error if not a number or string that can be converted to a number. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaNumber if argument i is number or can be converted to a number +
Throws: +
LuaError - if the argument is not a number
+
+
+
+ +

+checkjstring

+
+public java.lang.String checkjstring(int i)
+
+
Return argument i as a java String if a string or number, or throw an error if any other type +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
String value if argument i is a string or number +
Throws: +
LuaError - if the argument is not a string or number
+
+
+
+ +

+checkstring

+
+public LuaString checkstring(int i)
+
+
Return argument i as a LuaString if a string or number, or throw an error if any other type +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaString value if argument i is a string or number +
Throws: +
LuaError - if the argument is not a string or number
+
+
+
+ +

+checktable

+
+public LuaTable checktable(int i)
+
+
Return argument i as a LuaTable if a lua table, or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaTable value if a table +
Throws: +
LuaError - if the argument is not a lua table
+
+
+
+ +

+checkthread

+
+public LuaThread checkthread(int i)
+
+
Return argument i as a LuaThread if a lua thread, or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaThread value if a thread +
Throws: +
LuaError - if the argument is not a lua thread
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata(int i)
+
+
Return argument i as a java Object if a userdata, or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
java Object value if argument i is a userdata +
Throws: +
LuaError - if the argument is not a userdata
+
+
+
+ +

+checkuserdata

+
+public java.lang.Object checkuserdata(int i,
+                                      java.lang.Class c)
+
+
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, + or throw an error if any other type. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument
c - the class to which the userdata instance must be assignable +
Returns:
java Object value if argument i is a userdata whose instance Class c or a subclass +
Throws: +
LuaError - if the argument is not a userdata or from whose instance c is not assignable
+
+
+
+ +

+checkvalue

+
+public LuaValue checkvalue(int i)
+
+
Return argument i as a LuaValue if it exists, or throw an error. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaValue value if the argument exists +
Throws: +
LuaError - if the argument does not exist.
+
+
+
+ +

+checknotnil

+
+public LuaValue checknotnil(int i)
+
+
Return argument i as a LuaValue if it is not nil, or throw an error if it is nil. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
LuaValue value if the argument is not nil +
Throws: +
LuaError - if the argument doesn't exist or evaluates to nil.
+
+
+
+ +

+argcheck

+
+public void argcheck(boolean test,
+                     int i,
+                     java.lang.String msg)
+
+
Performs test on argument i as a LuaValue when a user-supplied assertion passes, or throw an error. + Returns normally if the value of test is true, otherwise throws and argument error with + the supplied message, msg. +

+

+
Parameters:
test - user supplied assertion to test against
i - the index to report in any error message
msg - the error message to use when the test fails +
Throws: +
LuaError - if the the value of test is false
+
+
+
+ +

+isnoneornil

+
+public boolean isnoneornil(int i)
+
+
Return true if there is no argument or nil at argument i. +

+

+
Parameters:
i - the index of the argument to test, 1 is the first argument +
Returns:
true if argument i contains either no argument or nil
+
+
+
+ +

+toboolean

+
+public boolean toboolean(int i)
+
+
Convert argument i to java boolean based on lua rules for boolean evaluation. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
false if argument i is nil or false, otherwise true
+
+
+
+ +

+tobyte

+
+public byte tobyte(int i)
+
+
Return argument i as a java byte value, discarding any fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
byte value with fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+tochar

+
+public char tochar(int i)
+
+
Return argument i as a java char value, discarding any fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
char value with fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+todouble

+
+public double todouble(int i)
+
+
Return argument i as a java double value or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
double value if argument i is number, otherwise 0
+
+
+
+ +

+tofloat

+
+public float tofloat(int i)
+
+
Return argument i as a java float value, discarding excess fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
float value with excess fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+toint

+
+public int toint(int i)
+
+
Return argument i as a java int value, discarding any fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
int value with fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+tolong

+
+public long tolong(int i)
+
+
Return argument i as a java long value, discarding any fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
long value with fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring(int i)
+
+
Return argument i as a java String based on the type of the argument. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
String value representing the type
+
+
+
+ +

+toshort

+
+public short toshort(int i)
+
+
Return argument i as a java short value, discarding any fractional part and truncating, + or 0 if not a number. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
short value with fraction discarded and truncated if necessary if argument i is number, otherwise 0
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata(int i)
+
+
Return argument i as a java Object if a userdata, or null. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument +
Returns:
java Object value if argument i is a userdata, otherwise null
+
+
+
+ +

+touserdata

+
+public java.lang.Object touserdata(int i,
+                                   java.lang.Class c)
+
+
Return argument i as a java Object if it is a userdata whose instance Class c or a subclass, or null. +

+

+
Parameters:
i - the index of the argument to convert, 1 is the first argument
c - the class to which the userdata instance must be assignable +
Returns:
java Object value if argument i is a userdata whose instance Class c or a subclass, otherwise null
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Convert the list of varargs values to a human readable java String. +

+

+ +
Returns:
String value in human readable form such as {1,2}.
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Convert the value or values to a java String using Varargs.tojstring() +

+

+
Overrides:
toString in class java.lang.Object
+
+
+ +
Returns:
String value in human readable form.
See Also:
tojstring()
+
+
+
+ +

+subargs

+
+public abstract Varargs subargs(int start)
+
+
Create a Varargs instance containing arguments starting at index start +

+

+
Parameters:
start - the index from which to include arguments, where 1 is the first argument. +
Returns:
Varargs containing argument { start, start+1, ... , narg-start-1 }
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.WeakSlot.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.WeakSlot.html new file mode 100644 index 000000000..fe2f5a3ee --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.WeakSlot.html @@ -0,0 +1,653 @@ + + + + + + +WeakTable.WeakSlot (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class WeakTable.WeakSlot

+
+java.lang.Object
+  extended by org.luaj.vm2.WeakTable.WeakSlot
+
+
+
Enclosing class:
WeakTable
+
+
+
+
public abstract static class WeakTable.WeakSlot
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  java.lang.Objectkey + +
+           
+protected  org.luaj.vm2.LuaTable.Slotnext + +
+           
+protected  java.lang.Objectvalue + +
+           
+  + + + + + + + + + + + +
+Constructor Summary
+protected WeakTable.WeakSlot(java.lang.Object key, + java.lang.Object value, + org.luaj.vm2.LuaTable.Slot next) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ org.luaj.vm2.LuaTable.Slotadd(org.luaj.vm2.LuaTable.Slot entry) + +
+          Link the given new entry to this slot.
+ intarraykey(int max) + +
+          Return first entry's key, iff it is an integer between 1 and max, + inclusive, or zero otherwise.
+protected abstract  WeakTable.WeakSlotcopy(org.luaj.vm2.LuaTable.Slot next) + +
+           
+ org.luaj.vm2.LuaTable.StrongSlotfind(LuaValue key) + +
+          Compare given key with first()'s key; return first() if equal.
+ org.luaj.vm2.LuaTable.StrongSlotfirst() + +
+          Return first Entry, if still present, or null.
+ booleankeyeq(LuaValue key) + +
+          Compare given key with first()'s key; return true if equal.
+abstract  intkeyindex(int hashMask) + +
+          Return hash{pow2,mod}( first().key().hashCode(), sizeMask )
+ org.luaj.vm2.LuaTable.Slotrelink(org.luaj.vm2.LuaTable.Slot rest) + +
+          Return a Slot with the same first key and value (if still present) + and rest() equal to rest.
+ org.luaj.vm2.LuaTable.Slotremove(org.luaj.vm2.LuaTable.StrongSlot target) + +
+          Return a Slot with the given value set to nil; must not return null + for next() to behave correctly.
+ org.luaj.vm2.LuaTable.Slotrest() + +
+          Return rest of elements
+ org.luaj.vm2.LuaTable.Slotset(org.luaj.vm2.LuaTable.StrongSlot target, + LuaValue value) + +
+          Set the value of this Slot's first Entry, if possible, or return a + new Slot whose first entry has the given value.
+abstract  org.luaj.vm2.LuaTable.Slotset(LuaValue value) + +
+           
+ LuaValuestrongkey() + +
+           
+ LuaValuestrongvalue() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+key

+
+protected java.lang.Object key
+
+
+
+
+
+ +

+value

+
+protected java.lang.Object value
+
+
+
+
+
+ +

+next

+
+protected org.luaj.vm2.LuaTable.Slot next
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+WeakTable.WeakSlot

+
+protected WeakTable.WeakSlot(java.lang.Object key,
+                             java.lang.Object value,
+                             org.luaj.vm2.LuaTable.Slot next)
+
+
+ + + + + + + + +
+Method Detail
+ +

+keyindex

+
+public abstract int keyindex(int hashMask)
+
+
Return hash{pow2,mod}( first().key().hashCode(), sizeMask ) +

+

+
+
+
+
+
+
+
+ +

+set

+
+public abstract org.luaj.vm2.LuaTable.Slot set(LuaValue value)
+
+
+
+
+
+
+
+
+
+ +

+first

+
+public org.luaj.vm2.LuaTable.StrongSlot first()
+
+
Return first Entry, if still present, or null. +

+

+
+
+
+
+
+
+
+ +

+find

+
+public org.luaj.vm2.LuaTable.StrongSlot find(LuaValue key)
+
+
Compare given key with first()'s key; return first() if equal. +

+

+
+
+
+
+
+
+
+ +

+keyeq

+
+public boolean keyeq(LuaValue key)
+
+
Compare given key with first()'s key; return true if equal. May + return true for keys no longer present in the table. +

+

+
+
+
+
+
+
+
+ +

+rest

+
+public org.luaj.vm2.LuaTable.Slot rest()
+
+
Return rest of elements +

+

+
+
+
+
+
+
+
+ +

+arraykey

+
+public int arraykey(int max)
+
+
Return first entry's key, iff it is an integer between 1 and max, + inclusive, or zero otherwise. +

+

+
+
+
+
+
+
+
+ +

+set

+
+public org.luaj.vm2.LuaTable.Slot set(org.luaj.vm2.LuaTable.StrongSlot target,
+                                      LuaValue value)
+
+
Set the value of this Slot's first Entry, if possible, or return a + new Slot whose first entry has the given value. +

+

+
+
+
+
+
+
+
+ +

+add

+
+public org.luaj.vm2.LuaTable.Slot add(org.luaj.vm2.LuaTable.Slot entry)
+
+
Link the given new entry to this slot. +

+

+
+
+
+
+
+
+
+ +

+remove

+
+public org.luaj.vm2.LuaTable.Slot remove(org.luaj.vm2.LuaTable.StrongSlot target)
+
+
Return a Slot with the given value set to nil; must not return null + for next() to behave correctly. +

+

+
+
+
+
+
+
+
+ +

+relink

+
+public org.luaj.vm2.LuaTable.Slot relink(org.luaj.vm2.LuaTable.Slot rest)
+
+
Return a Slot with the same first key and value (if still present) + and rest() equal to rest. +

+

+
+
+
+
+
+
+
+ +

+strongkey

+
+public LuaValue strongkey()
+
+
+
+
+
+
+
+
+
+ +

+strongvalue

+
+public LuaValue strongvalue()
+
+
+
+
+
+
+
+
+
+ +

+copy

+
+protected abstract WeakTable.WeakSlot copy(org.luaj.vm2.LuaTable.Slot next)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.html new file mode 100644 index 000000000..cdc477676 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/WeakTable.html @@ -0,0 +1,492 @@ + + + + + + +WeakTable (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2 +
+Class WeakTable

+
+java.lang.Object
+  extended by org.luaj.vm2.WeakTable
+
+
+
+
public class WeakTable
extends java.lang.Object
+ + +

+Subclass of LuaTable that provides weak key and weak value semantics. +

+ Normally these are not created directly, but indirectly when changing the mode + of a LuaTable as lua script executes. +

+ However, calling the constructors directly when weak tables are required from + Java will reduce overhead. +

+ +

+


+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classWeakTable.WeakSlot + +
+           
+  + + + + + + + + + + +
+Constructor Summary
WeakTable(boolean weakkeys, + boolean weakvalues, + LuaValue backing) + +
+          Construct a table with weak keys, weak values, or both
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuearrayget(LuaValue[] array, + int index) + +
+          Returns the value at the given index in the array, or null if it is a weak reference that + has been dropped.
+ org.luaj.vm2.LuaTable.Slotentry(LuaValue key, + LuaValue value) + +
+          Return an instance of Slot appropriate for the given key and value.
+static LuaTablemake(boolean weakkeys, + boolean weakvalues) + +
+           
+protected static LuaValuestrengthen(java.lang.Object ref) + +
+          Unwrap a LuaValue from a WeakReference and/or WeakUserdata.
+ LuaValuetoLuaValue() + +
+          Return this metatable as a LuaValue.
+ booleanuseWeakKeys() + +
+          Return whether or not this table's keys are weak.
+ booleanuseWeakValues() + +
+          Return whether or not this table's values are weak.
+protected static LuaValueweaken(LuaValue value) + +
+          Self-sent message to convert a value to its weak counterpart
+ LuaValuewrap(LuaValue value) + +
+          Returns the given value wrapped in a weak reference if appropriate.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+WeakTable

+
+public WeakTable(boolean weakkeys,
+                 boolean weakvalues,
+                 LuaValue backing)
+
+
Construct a table with weak keys, weak values, or both +

+

+
Parameters:
weakkeys - true to let the table have weak keys
weakvalues - true to let the table have weak values
+
+ + + + + + + + +
+Method Detail
+ +

+make

+
+public static LuaTable make(boolean weakkeys,
+                            boolean weakvalues)
+
+
+
+
+
+
+
+
+
+ +

+useWeakKeys

+
+public boolean useWeakKeys()
+
+
Return whether or not this table's keys are weak. +

+

+
+
+
+
+
+
+
+ +

+useWeakValues

+
+public boolean useWeakValues()
+
+
Return whether or not this table's values are weak. +

+

+
+
+
+
+
+
+
+ +

+toLuaValue

+
+public LuaValue toLuaValue()
+
+
Return this metatable as a LuaValue. +

+

+
+
+
+
+
+
+
+ +

+entry

+
+public org.luaj.vm2.LuaTable.Slot entry(LuaValue key,
+                                        LuaValue value)
+
+
Return an instance of Slot appropriate for the given key and value. +

+

+
+
+
+
+
+
+
+ +

+weaken

+
+protected static LuaValue weaken(LuaValue value)
+
+
Self-sent message to convert a value to its weak counterpart +

+

+
+
+
+
Parameters:
value - value to convert +
Returns:
LuaValue that is a strong or weak reference, depending on type of value
+
+
+
+ +

+strengthen

+
+protected static LuaValue strengthen(java.lang.Object ref)
+
+
Unwrap a LuaValue from a WeakReference and/or WeakUserdata. +

+

+
+
+
+
Parameters:
ref - reference to convert +
Returns:
LuaValue or null
See Also:
weaken(LuaValue)
+
+
+
+ +

+wrap

+
+public LuaValue wrap(LuaValue value)
+
+
Returns the given value wrapped in a weak reference if appropriate. +

+

+
+
+
+
+
+
+
+ +

+arrayget

+
+public LuaValue arrayget(LuaValue[] array,
+                         int index)
+
+
Returns the value at the given index in the array, or null if it is a weak reference that + has been dropped. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Buffer.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Buffer.html new file mode 100644 index 000000000..0834eb432 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Buffer.html @@ -0,0 +1,311 @@ + + + + + + +Uses of Class org.luaj.vm2.Buffer (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Buffer

+
+ + + + + + + + + +
+Packages that use Buffer
org.luaj.vm2  
+  +

+ + + + + +
+Uses of Buffer in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return Buffer
+ BufferBuffer.append(byte b) + +
+          Append a single byte to the buffer.
+ BufferBuffer.append(LuaString str) + +
+          Append a LuaString to the buffer.
+ BufferBuffer.append(LuaValue val) + +
+          Append a LuaValue to the buffer.
+ BufferBuffer.append(java.lang.String str) + +
+          Append a Java String to the buffer.
+ BufferLuaValue.buffer() + +
+          Convert the value to a Buffer for more efficient concatenation of + multiple strings.
+ BufferLuaNumber.concat(Buffer rhs) + +
+           
+ BufferLuaString.concat(Buffer rhs) + +
+           
+ BufferLuaValue.concat(Buffer rhs) + +
+          Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ BufferBuffer.concatTo(LuaNumber lhs) + +
+          Concatenate this buffer onto a LuaNumber
+ BufferBuffer.concatTo(LuaString lhs) + +
+          Concatenate this buffer onto a LuaString
+ BufferBuffer.concatTo(LuaValue lhs) + +
+          Concatenate this buffer onto a LuaValue
+ BufferBuffer.prepend(LuaString s) + +
+          Concatenate bytes from a LuaString onto the front of this buffer
+ BufferBuffer.setvalue(LuaValue value) + +
+          Set buffer contents as a LuaValue
+  +

+ + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type Buffer
+ BufferLuaNumber.concat(Buffer rhs) + +
+           
+ BufferLuaString.concat(Buffer rhs) + +
+           
+ BufferLuaValue.concat(Buffer rhs) + +
+          Concatenate a Buffer onto this value and return the result + using rules of lua string concatenation including metatag processing.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Compiler.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Compiler.html new file mode 100644 index 000000000..a734b27e2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Compiler.html @@ -0,0 +1,209 @@ + + + + + + +Uses of Interface org.luaj.vm2.Globals.Compiler (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.luaj.vm2.Globals.Compiler

+
+ + + + + + + + + + + + + +
+Packages that use Globals.Compiler
org.luaj.vm2  
org.luaj.vm2.compiler  
+  +

+ + + + + +
+Uses of Globals.Compiler in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as Globals.Compiler
+ Globals.CompilerGlobals.compiler + +
+          The installed compiler.
+  +

+ + + + + +
+Uses of Globals.Compiler in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.compiler that implement Globals.Compiler
+ classLuaC + +
+          Compiler for Lua.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Loader.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Loader.html new file mode 100644 index 000000000..bc53646cb --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Loader.html @@ -0,0 +1,239 @@ + + + + + + +Uses of Interface org.luaj.vm2.Globals.Loader (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.luaj.vm2.Globals.Loader

+
+ + + + + + + + + + + + + + + + + +
+Packages that use Globals.Loader
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.luajc  
+  +

+ + + + + +
+Uses of Globals.Loader in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as Globals.Loader
+ Globals.LoaderGlobals.loader + +
+          The installed loader.
+  +

+ + + + + +
+Uses of Globals.Loader in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.compiler that implement Globals.Loader
+ classLuaC + +
+          Compiler for Lua.
+  +

+ + + + + +
+Uses of Globals.Loader in org.luaj.vm2.luajc
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.luajc that implement Globals.Loader
+ classLuaJC + +
+          Implementation of Globals.Compiler which does direct + lua-to-java-bytecode compiling.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Undumper.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Undumper.html new file mode 100644 index 000000000..90e8c8d02 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.Undumper.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Interface org.luaj.vm2.Globals.Undumper (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.luaj.vm2.Globals.Undumper

+
+ + + + + + + + + +
+Packages that use Globals.Undumper
org.luaj.vm2  
+  +

+ + + + + +
+Uses of Globals.Undumper in org.luaj.vm2
+  +

+ + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as Globals.Undumper
+static Globals.UndumperLoadState.instance + +
+          Shared instance of Globals.Undumper to use loading prototypes from binary lua files
+ Globals.UndumperGlobals.undumper + +
+          The installed undumper.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.html new file mode 100644 index 000000000..2fed49328 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Globals.html @@ -0,0 +1,476 @@ + + + + + + +Uses of Class org.luaj.vm2.Globals (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Globals

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use Globals
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
org.luaj.vm2.luajc  
org.luaj.vm2.server  
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as Globals
+ GlobalsLuaThread.globals + +
+           
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return Globals
+ GlobalsGlobals.checkglobals() + +
+          Check that this object is a Globals object, and return it, otherwise throw an error.
+ GlobalsLuaValue.checkglobals() + +
+          Check that the value is a Globals instance, or throw LuaError if not
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type Globals
+static voidLoadState.install(Globals globals) + +
+          Install this class as the standard Globals.Undumper for the supplied Globals
+  +

+ + + + + + + + + + + +
Constructors in org.luaj.vm2 with parameters of type Globals
LuaThread(Globals globals) + +
+          Private constructor for main thread only
LuaThread(Globals globals, + LuaValue func) + +
+          Create a LuaThread around a function and environment
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.compiler
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.compiler with parameters of type Globals
+static voidLuaC.install(Globals globals) + +
+          Install the compiler so that LoadState will first + try to use it when handed bytes that are + not already a compiled lua chunk.
+ LuaValueLuaC.load(java.io.InputStream stream, + java.lang.String chunkname, + Globals globals) + +
+          Deprecated. Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly.
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + +
Fields in org.luaj.vm2.lib declared as Globals
+protected  GlobalsIoLib.globals + +
+           
+protected  GlobalsOsLib.globals + +
+           
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jme that return Globals
+static GlobalsJmePlatform.debugGlobals() + +
+          Create standard globals including the DebugLib library.
+static GlobalsJmePlatform.standardGlobals() + +
+          Create a standard set of globals for JME including all the libraries.
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jse that return Globals
+static GlobalsJsePlatform.debugGlobals() + +
+          Create standard globals including the DebugLib library.
+static GlobalsJsePlatform.standardGlobals() + +
+          Create a standard set of globals for JSE including all the libraries.
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.luajc
+  +

+ + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.luajc with parameters of type Globals
+ java.util.HashtableLuaJC.compileAll(java.io.InputStream script, + java.lang.String chunkname, + java.lang.String filename, + Globals globals, + boolean genmain) + +
+           
+ java.util.HashtableLuaJC.compileAll(java.io.Reader script, + java.lang.String chunkname, + java.lang.String filename, + Globals globals, + boolean genmain) + +
+           
+static voidLuaJC.install(Globals G) + +
+          Install the compiler as the main Globals.Loader to use in a set of globals.
+  +

+ + + + + +
+Uses of Globals in org.luaj.vm2.server
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.server declared as Globals
+protected  GlobalsDefaultLauncher.g + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LoadState.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LoadState.html new file mode 100644 index 000000000..d23cadab2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LoadState.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.LoadState (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LoadState

+
+No usage of org.luaj.vm2.LoadState +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LocVars.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LocVars.html new file mode 100644 index 000000000..016b3a4d8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LocVars.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.LocVars (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LocVars

+
+ + + + + + + + + +
+Packages that use LocVars
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LocVars in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as LocVars
+ LocVars[]Prototype.locvars + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Lua.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Lua.html new file mode 100644 index 000000000..3b1fa53d1 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Lua.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.Lua (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Lua

+
+ + + + + + + + + +
+Packages that use Lua
org.luaj.vm2  
+  +

+ + + + + +
+Uses of Lua in org.luaj.vm2
+  +

+ + + + + + + + + +
Subclasses of Lua in org.luaj.vm2
+ classPrint + +
+          Debug helper class to pretty-print lua bytecodes.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaBoolean.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaBoolean.html new file mode 100644 index 000000000..67e6e6329 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaBoolean.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaBoolean (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaBoolean

+
+ + + + + + + + + +
+Packages that use LuaBoolean
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaBoolean in org.luaj.vm2
+  +

+ + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaBoolean
+static LuaBooleanLuaValue.FALSE + +
+          LuaBoolean constant corresponding to lua false
+static LuaBooleanLuaValue.TRUE + +
+          LuaBoolean constant corresponding to lua true
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2 that return LuaBoolean
+static LuaBooleanLuaValue.valueOf(boolean b) + +
+          Convert java boolean to a LuaValue.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaClosure.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaClosure.html new file mode 100644 index 000000000..4e922a356 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaClosure.html @@ -0,0 +1,314 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaClosure (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaClosure

+
+ + + + + + + + + + + + + +
+Packages that use LuaClosure
org.luaj.vm2  
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of LuaClosure in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaClosure
+ LuaClosureLuaClosure.checkclosure() + +
+           
+ LuaClosureLuaValue.checkclosure() + +
+          Check that the value is a LuaClosure , + or throw LuaError if not
+ LuaClosureVarargs.checkclosure(int i) + +
+          Return argument i as a closure, or throw an error if any other type.
+ LuaClosureVarargs.optclosure(int i, + LuaClosure defval) + +
+          Return argument i as a closure, defval if nil, or throw a LuaError if any other type.
+ LuaClosureLuaClosure.optclosure(LuaClosure defval) + +
+           
+ LuaClosureLuaNil.optclosure(LuaClosure defval) + +
+           
+ LuaClosureLuaValue.optclosure(LuaClosure defval) + +
+          Check that optional argument is a closure and return as LuaClosure
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaClosure
+ LuaClosureVarargs.optclosure(int i, + LuaClosure defval) + +
+          Return argument i as a closure, defval if nil, or throw a LuaError if any other type.
+ LuaClosureLuaClosure.optclosure(LuaClosure defval) + +
+           
+ LuaClosureLuaNil.optclosure(LuaClosure defval) + +
+           
+ LuaClosureLuaValue.optclosure(LuaClosure defval) + +
+          Check that optional argument is a closure and return as LuaClosure
+static voidPrint.printState(LuaClosure cl, + int pc, + LuaValue[] stack, + int top, + Varargs varargs) + +
+          Print the state of a LuaClosure that is being executed
+  +

+ + + + + +
+Uses of LuaClosure in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type LuaClosure
+ voidDebugLib.onCall(LuaClosure c, + Varargs varargs, + LuaValue[] stack) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaDouble.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaDouble.html new file mode 100644 index 000000000..507cfb159 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaDouble.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaDouble (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaDouble

+
+ + + + + + + + + +
+Packages that use LuaDouble
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaDouble in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaDouble
+static LuaDoubleLuaDouble.NAN + +
+          Constant LuaDouble representing NaN (not a number)
+static LuaDoubleLuaDouble.NEGINF + +
+          Constant LuaDouble representing negative infinity
+static LuaDoubleLuaDouble.POSINF + +
+          Constant LuaDouble representing positive infinity
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaError.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaError.html new file mode 100644 index 000000000..7230f812e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaError.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaError (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaError

+
+No usage of org.luaj.vm2.LuaError +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaFunction.html new file mode 100644 index 000000000..7e4dfeb8e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaFunction.html @@ -0,0 +1,695 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaFunction

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use LuaFunction
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
org.luaj.vm2.luajc  
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2
+  +

+ + + + + + + + + +
Subclasses of LuaFunction in org.luaj.vm2
+ classLuaClosure + +
+          Extension of LuaFunction which executes lua bytecode.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaFunction
+ LuaFunctionLuaFunction.checkfunction() + +
+           
+ LuaFunctionLuaValue.checkfunction() + +
+          Check that the value is a function , or throw LuaError if not
+ LuaFunctionVarargs.checkfunction(int i) + +
+          Return argument i as a function, or throw an error if an incompatible type.
+ LuaFunctionGlobals.Loader.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+ LuaFunctionVarargs.optfunction(int i, + LuaFunction defval) + +
+          Return argument i as a function, defval if nil, or throw a LuaError if an incompatible type.
+ LuaFunctionLuaFunction.optfunction(LuaFunction defval) + +
+           
+ LuaFunctionLuaNil.optfunction(LuaFunction defval) + +
+           
+ LuaFunctionLuaValue.optfunction(LuaFunction defval) + +
+          Check that optional argument is a function and return as LuaFunction
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaFunction
+ LuaFunctionVarargs.optfunction(int i, + LuaFunction defval) + +
+          Return argument i as a function, defval if nil, or throw a LuaError if an incompatible type.
+ LuaFunctionLuaFunction.optfunction(LuaFunction defval) + +
+           
+ LuaFunctionLuaNil.optfunction(LuaFunction defval) + +
+           
+ LuaFunctionLuaValue.optfunction(LuaFunction defval) + +
+          Check that optional argument is a function and return as LuaFunction
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.compiler that return LuaFunction
+ LuaFunctionLuaC.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+           
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LuaFunction in org.luaj.vm2.lib
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+ classBit32Lib + +
+          Subclass of LibFunction that implements the Lua standard bit32 library.
+ classCoroutineLib + +
+          Subclass of LibFunction which implements the lua standard coroutine + library.
+ classDebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
+ classIoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
+ classLibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
+ classMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+protected static classMathLib.BinaryOp + +
+           
+protected static classMathLib.UnaryOp + +
+           
+ classOneArgFunction + +
+          Abstract base class for Java function implementations that take one argument and + return one value.
+ classOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classPackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+ classPackageLib.searchpath + +
+           
+ classStringLib + +
+          Subclass of LibFunction which implements the lua standard string + library.
+ classTableLib + +
+          Subclass of LibFunction which implements the lua standard table + library.
+ classThreeArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classTwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classVarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+ classZeroArgFunction + +
+          Abstract base class for Java function implementations that take no arguments and + return one value.
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type LuaFunction
+ voidDebugLib.onCall(LuaFunction f) + +
+           
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of LuaFunction in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LuaFunction in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classLuajavaLib + +
+          Subclass of LibFunction which implements the features of the luajava package.
+  +

+ + + + + +
+Uses of LuaFunction in org.luaj.vm2.luajc
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.luajc that return LuaFunction
+ LuaFunctionLuaJC.load(Prototype p, + java.lang.String name, + LuaValue globals) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaInteger.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaInteger.html new file mode 100644 index 000000000..084f45c58 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaInteger.html @@ -0,0 +1,334 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaInteger (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaInteger

+
+ + + + + + + + + +
+Packages that use LuaInteger
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaInteger in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaInteger
+ LuaIntegerLuaDouble.checkinteger() + +
+           
+ LuaIntegerLuaInteger.checkinteger() + +
+           
+ LuaIntegerLuaString.checkinteger() + +
+           
+ LuaIntegerLuaValue.checkinteger() + +
+          Check that the value is numeric, and convert and cast value to int, or throw LuaError if not numeric
+ LuaIntegerVarargs.checkinteger(int i) + +
+          Return argument i as a java int value, or throw an error if not a number or is not representable by a java int.
+ LuaIntegerVarargs.optinteger(int i, + LuaInteger defval) + +
+          Return argument i as a java int value, defval if nil, or throw a LuaError if not a number or is not representable by a java int.
+ LuaIntegerLuaDouble.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaInteger.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaNil.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaString.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaValue.optinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+static LuaIntegerLuaInteger.valueOf(int i) + +
+           
+static LuaIntegerLuaValue.valueOf(int i) + +
+          Convert java int to a LuaValue.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaInteger
+ LuaIntegerVarargs.optinteger(int i, + LuaInteger defval) + +
+          Return argument i as a java int value, defval if nil, or throw a LuaError if not a number or is not representable by a java int.
+ LuaIntegerLuaDouble.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaInteger.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaNil.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaString.optinteger(LuaInteger defval) + +
+           
+ LuaIntegerLuaValue.optinteger(LuaInteger defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaInteger
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNil.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNil.html new file mode 100644 index 000000000..3a8d843d7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNil.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaNil (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaNil

+
+No usage of org.luaj.vm2.LuaNil +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNumber.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNumber.html new file mode 100644 index 000000000..fce4a71a4 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaNumber.html @@ -0,0 +1,457 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaNumber (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaNumber

+
+ + + + + + + + + +
+Packages that use LuaNumber
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaNumber in org.luaj.vm2
+  +

+ + + + + + + + + + + + + +
Subclasses of LuaNumber in org.luaj.vm2
+ classLuaDouble + +
+          Extension of LuaNumber which can hold a Java double as its value.
+ classLuaInteger + +
+          Extension of LuaNumber which can hold a Java int as its value.
+  +

+ + + + + + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaNumber
+static LuaNumberLuaValue.MINUSONE + +
+          LuaValue number constant equal to -1
+static LuaNumberLuaValue.ONE + +
+          LuaValue number constant equal to 1
+static LuaNumberLuaValue.ZERO + +
+          LuaValue number constant equal to 0
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaNumber
+ LuaNumberLuaDouble.checknumber() + +
+           
+ LuaNumberLuaNumber.checknumber() + +
+           
+ LuaNumberLuaString.checknumber() + +
+           
+ LuaNumberLuaValue.checknumber() + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaNumberVarargs.checknumber(int i) + +
+          Return argument i as a LuaNumber, or throw an error if not a number or string that can be converted to a number.
+ LuaNumberLuaNumber.checknumber(java.lang.String errmsg) + +
+           
+ LuaNumberLuaString.checknumber(java.lang.String msg) + +
+           
+ LuaNumberLuaValue.checknumber(java.lang.String msg) + +
+          Check that the value is numeric, and return as a LuaNumber if so, or throw LuaError
+ LuaNumberVarargs.optnumber(int i, + LuaNumber defval) + +
+          Return argument i as a LuaNumber, defval if nil, or throw a LuaError if not a number or string that can be converted to a number.
+ LuaNumberLuaDouble.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaNil.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaNumber.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaString.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaValue.optnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+static LuaNumberLuaDouble.valueOf(double d) + +
+           
+static LuaNumberLuaValue.valueOf(double d) + +
+          Convert java double to a LuaValue.
+static LuaNumberLuaInteger.valueOf(long l) + +
+          Return a LuaNumber that represents the value provided
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaNumber
+ BufferBuffer.concatTo(LuaNumber lhs) + +
+          Concatenate this buffer onto a LuaNumber
+ LuaValueLuaNumber.concatTo(LuaNumber lhs) + +
+           
+ LuaValueLuaString.concatTo(LuaNumber lhs) + +
+           
+ LuaValueLuaValue.concatTo(LuaNumber lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaNumberVarargs.optnumber(int i, + LuaNumber defval) + +
+          Return argument i as a LuaNumber, defval if nil, or throw a LuaError if not a number or string that can be converted to a number.
+ LuaNumberLuaDouble.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaNil.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaNumber.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaString.optnumber(LuaNumber defval) + +
+           
+ LuaNumberLuaValue.optnumber(LuaNumber defval) + +
+          Check that optional argument is a number or string convertible to number and return as LuaNumber
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaString.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaString.html new file mode 100644 index 000000000..68fb1923c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaString.html @@ -0,0 +1,878 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaString (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaString

+
+ + + + + + + + + + + + + +
+Packages that use LuaString
org.luaj.vm2  
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of LuaString in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaString
+static LuaStringLuaValue.ADD + +
+          LuaString constant with value "__add" for use as metatag
+static LuaStringLuaValue.CALL + +
+          LuaString constant with value "__call" for use as metatag
+static LuaStringLuaValue.CONCAT + +
+          LuaString constant with value "__concat" for use as metatag
+static LuaStringLuaValue.DIV + +
+          LuaString constant with value "__div" for use as metatag
+static LuaStringLuaValue.EMPTYSTRING + +
+          LuaString constant with value ""
+static LuaStringLuaValue.ENV + +
+          The variable name of the environment.
+static LuaStringLuaValue.EQ + +
+          LuaString constant with value "__eq" for use as metatag
+static LuaStringLuaValue.INDEX + +
+          LuaString constant with value "__index" for use as metatag
+static LuaStringLuaValue.LE + +
+          LuaString constant with value "__le" for use as metatag
+static LuaStringLuaValue.LEN + +
+          LuaString constant with value "__len" for use as metatag
+static LuaStringLuaValue.LT + +
+          LuaString constant with value "__lt" for use as metatag
+static LuaStringLuaValue.METATABLE + +
+          LuaString constant with value "__metatable" for use as metatag
+static LuaStringLuaValue.MOD + +
+          LuaString constant with value "__mod" for use as metatag
+static LuaStringLuaValue.MODE + +
+          LuaString constant with value "__mode" for use as metatag
+static LuaStringLuaValue.MUL + +
+          LuaString constant with value "__mul" for use as metatag
+ LuaStringUpvaldesc.name + +
+           
+static LuaStringLuaValue.NEWINDEX + +
+          LuaString constant with value "__newindex" for use as metatag
+static LuaStringLuaValue.POW + +
+          LuaString constant with value "__pow" for use as metatag
+ LuaStringPrototype.source + +
+           
+static LuaStringLuaValue.SUB + +
+          LuaString constant with value "__sub" for use as metatag
+static LuaStringLuaValue.TOSTRING + +
+          LuaString constant with value "__tostring" for use as metatag
+static LuaStringLuaValue.UNM + +
+          LuaString constant with value "__unm" for use as metatag
+ LuaStringLocVars.varname + +
+          The local variable name
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaString
+ LuaStringLuaDouble.checkstring() + +
+           
+ LuaStringLuaInteger.checkstring() + +
+           
+ LuaStringLuaString.checkstring() + +
+           
+ LuaStringLuaValue.checkstring() + +
+          Check that this is a lua string, or throw LuaError if it is not.
+ LuaStringVarargs.checkstring(int i) + +
+          Return argument i as a LuaString if a string or number, or throw an error if any other type
+ LuaStringPrototype.getlocalname(int number, + int pc) + +
+          Get the name of a local variable.
+ LuaStringVarargs.optstring(int i, + LuaString defval) + +
+          Return argument i as a LuaString if a string or number, defval if nil, or throw a LuaError if any other type
+ LuaStringLuaDouble.optstring(LuaString defval) + +
+           
+ LuaStringLuaInteger.optstring(LuaString defval) + +
+           
+ LuaStringLuaNil.optstring(LuaString defval) + +
+           
+ LuaStringLuaString.optstring(LuaString defval) + +
+           
+ LuaStringLuaValue.optstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ LuaStringLuaDouble.strvalue() + +
+           
+ LuaStringLuaFunction.strvalue() + +
+           
+ LuaStringLuaInteger.strvalue() + +
+           
+ LuaStringLuaString.strvalue() + +
+           
+ LuaStringLuaValue.strvalue() + +
+          Convert this value to a string if it is a LuaString or LuaNumber, + or throw a LuaError if it is not
+ LuaStringLuaString.substring(int beginIndex, + int endIndex) + +
+          Take a substring using Java zero-based indexes for begin and end or range.
+ LuaStringBuffer.tostring() + +
+          Convert the buffer to a LuaString
+static LuaStringLuaString.valueOf(byte[] bytes) + +
+          Construct a LuaString for all the bytes in a byte array.
+static LuaStringLuaValue.valueOf(byte[] bytes) + +
+          Convert bytes in an array to a LuaValue.
+static LuaStringLuaString.valueOf(byte[] bytes, + int off, + int len) + +
+          Construct a LuaString for a portion of a byte array.
+static LuaStringLuaValue.valueOf(byte[] bytes, + int off, + int len) + +
+          Convert bytes in an array to a LuaValue.
+static LuaStringLuaString.valueOf(char[] bytes) + +
+          Construct a LuaString using the supplied characters as byte values.
+static LuaStringLuaString.valueOf(char[] bytes, + int off, + int len) + +
+          Construct a LuaString using the supplied characters as byte values.
+static LuaStringLuaString.valueOf(java.lang.String string) + +
+          Get a LuaString instance whose bytes match + the supplied Java String using the UTF8 encoding.
+static LuaStringLuaValue.valueOf(java.lang.String s) + +
+          Convert java string to a LuaValue.
+static LuaStringLuaString.valueUsing(byte[] bytes) + +
+          Construct a LuaString for all the bytes in a byte array, possibly using + the supplied array as the backing store.
+static LuaStringLuaString.valueUsing(byte[] bytes, + int off, + int len) + +
+          Construct a LuaString around, possibly using the the supplied + byte array as the backing store.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaString
+ BufferBuffer.append(LuaString str) + +
+          Append a LuaString to the buffer.
+ LuaValueLuaTable.concat(LuaString sep, + int i, + int j) + +
+          Concatenate the contents of a table efficiently, using Buffer
+ BufferBuffer.concatTo(LuaString lhs) + +
+          Concatenate this buffer onto a LuaString
+ LuaValueLuaNumber.concatTo(LuaString lhs) + +
+           
+ LuaValueLuaString.concatTo(LuaString lhs) + +
+           
+ LuaValueLuaValue.concatTo(LuaString lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing.
+static booleanLuaString.equals(LuaString a, + int i, + LuaString b, + int j, + int n) + +
+           
+ intLuaString.indexOf(LuaString s, + int start) + +
+          Find the index of a string starting at a point in this string
+ intLuaString.indexOfAny(LuaString accept) + +
+          Java version of strpbrk - find index of any byte that in an accept string.
+ intLuaString.lastIndexOf(LuaString s) + +
+          Find the last index of a string in this string
+ PrototypeLoadState.loadFunction(LuaString p) + +
+          Load a function prototype from the input stream
+ LuaStringVarargs.optstring(int i, + LuaString defval) + +
+          Return argument i as a LuaString if a string or number, defval if nil, or throw a LuaError if any other type
+ LuaStringLuaDouble.optstring(LuaString defval) + +
+           
+ LuaStringLuaInteger.optstring(LuaString defval) + +
+           
+ LuaStringLuaNil.optstring(LuaString defval) + +
+           
+ LuaStringLuaString.optstring(LuaString defval) + +
+           
+ LuaStringLuaValue.optstring(LuaString defval) + +
+          Check that optional argument is a string or number and return as LuaString
+ BufferBuffer.prepend(LuaString s) + +
+          Concatenate bytes from a LuaString onto the front of this buffer
+ booleanLuaString.raweq(LuaString s) + +
+           
+ booleanLuaValue.raweq(LuaString val) + +
+          Equals: Perform direct equality comparison with a LuaString value + without metatag processing.
+ intLuaDouble.strcmp(LuaString rhs) + +
+           
+ intLuaInteger.strcmp(LuaString rhs) + +
+           
+ intLuaString.strcmp(LuaString rhs) + +
+           
+ intLuaValue.strcmp(LuaString rhs) + +
+          Perform string comparison with another value + known to be a LuaString + using string comparison based on byte values.
+  +

+ + + + + + + + + + + +
Constructors in org.luaj.vm2 with parameters of type LuaString
LocVars(LuaString varname, + int startpc, + int endpc) + +
+          Construct a LocVars instance.
Upvaldesc(LuaString name, + boolean instack, + int idx) + +
+           
+  +

+ + + + + +
+Uses of LuaString in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type LuaString
+abstract  voidIoLib.File.write(LuaString string) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaTable.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaTable.html new file mode 100644 index 000000000..ef3f472e1 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaTable.html @@ -0,0 +1,424 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaTable (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaTable

+
+ + + + + + + + + + + + + +
+Packages that use LuaTable
org.luaj.vm2  
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of LuaTable in org.luaj.vm2
+  +

+ + + + + + + + + +
Subclasses of LuaTable in org.luaj.vm2
+ classGlobals + +
+          Global environment used by luaj.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaTable
+ LuaTableLuaTable.checktable() + +
+           
+ LuaTableLuaValue.checktable() + +
+          Check that this is a LuaTable, or throw LuaError if it is not
+ LuaTableVarargs.checktable(int i) + +
+          Return argument i as a LuaTable if a lua table, or throw an error if any other type.
+static LuaTableLuaValue.listOf(LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied array values.
+static LuaTableLuaValue.listOf(LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied array values.
+static LuaTableWeakTable.make(boolean weakkeys, + boolean weakvalues) + +
+           
+ LuaTableVarargs.opttable(int i, + LuaTable defval) + +
+          Return argument i as a LuaTable if a lua table, defval if nil, or throw a LuaError if any other type.
+ LuaTableLuaNil.opttable(LuaTable defval) + +
+           
+ LuaTableLuaTable.opttable(LuaTable defval) + +
+           
+ LuaTableLuaValue.opttable(LuaTable defval) + +
+          Check that optional argument is a table and return as LuaTable
+static LuaTableLuaValue.tableOf() + +
+          Construct an empty LuaTable.
+static LuaTableLuaValue.tableOf(int narray, + int nhash) + +
+          Construct an empty LuaTable preallocated to hold array and hashed elements
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues) + +
+          Construct a LuaTable initialized with supplied named values.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs.
+static LuaTableLuaValue.tableOf(Varargs varargs, + int firstarg) + +
+          Construct a LuaTable initialized with supplied array values.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaTable
+ LuaValueGlobals.load(java.io.Reader reader, + java.lang.String chunkname, + LuaTable environment) + +
+          Load the content form a reader as a text file, supplying a custom environment.
+ LuaValueGlobals.load(java.lang.String script, + java.lang.String chunkname, + LuaTable environment) + +
+          Convenience function to load a string value as a script with a custom environment.
+ LuaTableVarargs.opttable(int i, + LuaTable defval) + +
+          Return argument i as a LuaTable if a lua table, defval if nil, or throw a LuaError if any other type.
+ LuaTableLuaNil.opttable(LuaTable defval) + +
+           
+ LuaTableLuaTable.opttable(LuaTable defval) + +
+           
+ LuaTableLuaValue.opttable(LuaTable defval) + +
+          Check that optional argument is a table and return as LuaTable
+  +

+ + + + + +
+Uses of LuaTable in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type LuaTable
+ voidPackageLib.setIsLoaded(java.lang.String name, + LuaTable value) + +
+          Allow packages to mark themselves as loaded
+protected  doubleOsLib.time(LuaTable table) + +
+          Returns the current time when called without arguments, + or a time representing the date and time specified by the given table.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.State.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.State.html new file mode 100644 index 000000000..0da6fd754 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.State.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaThread.State (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaThread.State

+
+ + + + + + + + + +
+Packages that use LuaThread.State
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaThread.State in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaThread.State
+ LuaThread.StateLuaThread.state + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.html new file mode 100644 index 000000000..71273b2db --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaThread.html @@ -0,0 +1,295 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaThread (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaThread

+
+ + + + + + + + + +
+Packages that use LuaThread
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaThread in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaThread
+ LuaThreadGlobals.running + +
+          The currently running thread.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaThread
+ LuaThreadLuaThread.checkthread() + +
+           
+ LuaThreadLuaValue.checkthread() + +
+          Check that this is a LuaThread, or throw LuaError if it is not
+ LuaThreadVarargs.checkthread(int i) + +
+          Return argument i as a LuaThread if a lua thread, or throw an error if any other type.
+ LuaThreadVarargs.optthread(int i, + LuaThread defval) + +
+          Return argument i as a LuaThread if a lua thread, defval if nil, or throw a LuaError if any other type.
+ LuaThreadLuaNil.optthread(LuaThread defval) + +
+           
+ LuaThreadLuaThread.optthread(LuaThread defval) + +
+           
+ LuaThreadLuaValue.optthread(LuaThread defval) + +
+          Check that optional argument is a thread and return as LuaThread
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaThread
+ VarargsLuaThread.State.lua_resume(LuaThread new_thread, + Varargs args) + +
+           
+ LuaThreadVarargs.optthread(int i, + LuaThread defval) + +
+          Return argument i as a LuaThread if a lua thread, defval if nil, or throw a LuaError if any other type.
+ LuaThreadLuaNil.optthread(LuaThread defval) + +
+           
+ LuaThreadLuaThread.optthread(LuaThread defval) + +
+           
+ LuaThreadLuaValue.optthread(LuaThread defval) + +
+          Check that optional argument is a thread and return as LuaThread
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaUserdata.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaUserdata.html new file mode 100644 index 000000000..0c633c82d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaUserdata.html @@ -0,0 +1,214 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaUserdata (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaUserdata

+
+ + + + + + + + + +
+Packages that use LuaUserdata
org.luaj.vm2  
+  +

+ + + + + +
+Uses of LuaUserdata in org.luaj.vm2
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaUserdata
+static LuaUserdataLuaValue.userdataOf(java.lang.Object o) + +
+          Construct a LuaUserdata for an object.
+static LuaUserdataLuaValue.userdataOf(java.lang.Object o, + LuaValue metatable) + +
+          Construct a LuaUserdata for an object with a user supplied metatable.
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaUserdata
+ booleanLuaUserdata.raweq(LuaUserdata val) + +
+           
+ booleanLuaValue.raweq(LuaUserdata val) + +
+          Equals: Perform direct equality comparison with a LuaUserdata value + without metatag processing.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaValue.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaValue.html new file mode 100644 index 000000000..0f1def017 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/LuaValue.html @@ -0,0 +1,5872 @@ + + + + + + +Uses of Class org.luaj.vm2.LuaValue (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.LuaValue

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use LuaValue
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
org.luaj.vm2.luajc  
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LuaValue in org.luaj.vm2
+ classGlobals + +
+          Global environment used by luaj.
+ classLuaBoolean + +
+          Extension of LuaValue which can hold a Java boolean as its value.
+ classLuaClosure + +
+          Extension of LuaFunction which executes lua bytecode.
+ classLuaDouble + +
+          Extension of LuaNumber which can hold a Java double as its value.
+ classLuaFunction + +
+          Base class for functions implemented in Java.
+ classLuaInteger + +
+          Extension of LuaNumber which can hold a Java int as its value.
+ classLuaNil + +
+          Class to encapsulate behavior of the singleton instance nil
+ classLuaNumber + +
+          Base class for representing numbers as lua values directly.
+ classLuaString + +
+          Subclass of LuaValue for representing lua strings.
+ classLuaTable + +
+          Subclass of LuaValue for representing lua tables.
+ classLuaThread + +
+          Subclass of LuaValue that implements + a lua coroutine thread using Java Threads.
+ classLuaUserdata + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as LuaValue
+protected  LuaValue[]LuaTable.array + +
+          the array values
+ LuaValueLuaThread.errorfunc + +
+          Error message handler for this thread, if any.
+ LuaValueLuaThread.State.function + +
+           
+ LuaValueLuaThread.State.hookfunc + +
+          Hook function control state used by debug lib.
+ LuaValue[]Prototype.k + +
+           
+ LuaValueLuaUserdata.m_metatable + +
+           
+static LuaValueLuaValue.NIL + +
+          LuaValue constant corresponding to lua #NIL
+static LuaValue[]LuaValue.NILS + +
+          Array of NIL values to optimize filling stacks using System.arraycopy().
+static LuaValueLuaValue.NONE + +
+          LuaValue constant corresponding to a Varargs list of no values
+static LuaValue[]LuaValue.NOVALS + +
+          LuaValue array constant with no values
+static LuaValueLuaBoolean.s_metatable + +
+          Shared static metatable for boolean values represented in lua.
+static LuaValueLuaFunction.s_metatable + +
+          Shared static metatable for all functions and closures.
+static LuaValueLuaNil.s_metatable + +
+           
+static LuaValueLuaNumber.s_metatable + +
+          Shared static metatable for all number values represented in lua.
+static LuaValueLuaString.s_metatable + +
+          The singleton instance for string metatables that forwards to the string functions.
+static LuaValueLuaThread.s_metatable + +
+          Shared metatable for lua threads.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return LuaValue
+ LuaValueLuaDouble.add(double lhs) + +
+           
+ LuaValueLuaInteger.add(double lhs) + +
+           
+ LuaValueLuaString.add(double rhs) + +
+           
+ LuaValueLuaValue.add(double rhs) + +
+          Add: Perform numeric add operation with another value + of double type with metatag processing
+ LuaValueLuaInteger.add(int lhs) + +
+           
+ LuaValueLuaString.add(int rhs) + +
+           
+ LuaValueLuaValue.add(int rhs) + +
+          Add: Perform numeric add operation with another value + of int type with metatag processing
+ LuaValueLuaDouble.add(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.add(LuaValue rhs) + +
+           
+ LuaValueLuaString.add(LuaValue rhs) + +
+           
+ LuaValueLuaValue.add(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ LuaValueLuaValue.and(LuaValue rhs) + +
+          Perform boolean and with another operand, based on lua rules for boolean evaluation.
+ LuaValueLuaValue.arg(int index) + +
+           
+ LuaValueTailcallVarargs.arg(int i) + +
+           
+abstract  LuaValueVarargs.arg(int i) + +
+          Get the n-th argument value (1-based).
+ LuaValueLuaValue.arg1() + +
+           
+ LuaValueTailcallVarargs.arg1() + +
+           
+abstract  LuaValueVarargs.arg1() + +
+          Get the first argument in the list.
+static LuaValueLuaValue.argerror(int iarg, + java.lang.String msg) + +
+          Throw a LuaError indicating an invalid argument was supplied to a function
+protected  LuaValueLuaValue.argerror(java.lang.String expected) + +
+          Throw a LuaError indicating an invalid argument was supplied to a function
+protected  LuaValueLuaValue.aritherror() + +
+          Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type
+protected  LuaValueLuaValue.aritherror(java.lang.String fun) + +
+          Throw a LuaError based on an arithmetic error such as add, or pow, + typically due to an invalid operand type
+protected  LuaValueLuaValue.arithmt(LuaValue tag, + LuaValue op2) + +
+          Perform metatag processing for arithmetic operations.
+protected  LuaValueLuaValue.arithmtwith(LuaValue tag, + double op1) + +
+          Perform metatag processing for arithmetic operations when the left-hand-side is a number.
+ LuaValueLuaTable.arrayget(LuaValue[] array, + int index) + +
+           
+ LuaValueWeakTable.arrayget(LuaValue[] array, + int index) + +
+           
+ LuaValueLuaClosure.call() + +
+           
+ LuaValueLuaValue.call() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaClosure.call(LuaValue arg) + +
+           
+ LuaValueLuaValue.call(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaClosure.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueLuaValue.call(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaClosure.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueLuaValue.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.call(java.lang.String arg) + +
+          Convenience function which calls a luavalue with a single, string argument.
+protected  LuaValueLuaValue.callmt() + +
+          Get the metatag value for the CALL metatag, if it exists.
+protected  LuaValueLuaValue.checkmetatag(LuaValue tag, + java.lang.String reason) + +
+          Get particular metatag, or throw LuaError if it doesn't exist
+ LuaValueLuaNil.checknotnil() + +
+           
+ LuaValueLuaValue.checknotnil() + +
+          Check that this is not the value NIL, or throw LuaError if it is
+ LuaValueVarargs.checknotnil(int i) + +
+          Return argument i as a LuaValue if it is not nil, or throw an error if it is nil.
+ LuaValueVarargs.checkvalue(int i) + +
+          Return argument i as a LuaValue if it exists, or throw an error.
+protected  LuaValueLuaValue.compareerror(LuaValue rhs) + +
+          Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type
+protected  LuaValueLuaValue.compareerror(java.lang.String rhs) + +
+          Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type
+ LuaValueLuaValue.comparemt(LuaValue tag, + LuaValue op1) + +
+          Perform metatag processing for comparison operations.
+ LuaValueLuaTable.concat(LuaString sep, + int i, + int j) + +
+          Concatenate the contents of a table efficiently, using Buffer
+ LuaValueLuaNumber.concat(LuaValue rhs) + +
+           
+ LuaValueLuaString.concat(LuaValue rhs) + +
+           
+ LuaValueLuaValue.concat(LuaValue rhs) + +
+          Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueLuaValue.concatmt(LuaValue rhs) + +
+          Perform metatag processing for concatenation operations.
+ LuaValueLuaNumber.concatTo(LuaNumber lhs) + +
+           
+ LuaValueLuaString.concatTo(LuaNumber lhs) + +
+           
+ LuaValueLuaValue.concatTo(LuaNumber lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaNumber + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueLuaNumber.concatTo(LuaString lhs) + +
+           
+ LuaValueLuaString.concatTo(LuaString lhs) + +
+           
+ LuaValueLuaValue.concatTo(LuaString lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + known to be a LuaString + and return the result using rules of lua string concatenation including + metatag processing.
+ LuaValueLuaValue.concatTo(LuaValue lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + whose type is unknwon + and return the result using rules of lua string concatenation including + metatag processing.
+static LuaValueLuaDouble.ddiv(double lhs, + double rhs) + +
+          Divide two double numbers according to lua math, and return a LuaValue result.
+ LuaValueLuaDouble.div(double rhs) + +
+           
+ LuaValueLuaInteger.div(double rhs) + +
+           
+ LuaValueLuaString.div(double rhs) + +
+           
+ LuaValueLuaValue.div(double rhs) + +
+          Divide: Perform numeric divide operation by another value + of double type without metatag processing
+ LuaValueLuaDouble.div(int rhs) + +
+           
+ LuaValueLuaInteger.div(int rhs) + +
+           
+ LuaValueLuaString.div(int rhs) + +
+           
+ LuaValueLuaValue.div(int rhs) + +
+          Divide: Perform numeric divide operation by another value + of int type without metatag processing
+ LuaValueLuaDouble.div(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.div(LuaValue rhs) + +
+           
+ LuaValueLuaString.div(LuaValue rhs) + +
+           
+ LuaValueLuaValue.div(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ LuaValueLuaDouble.divInto(double lhs) + +
+           
+ LuaValueLuaInteger.divInto(double lhs) + +
+           
+ LuaValueLuaString.divInto(double lhs) + +
+           
+ LuaValueLuaValue.divInto(double lhs) + +
+          Reverse-divide: Perform numeric divide operation into another value + with metatag processing
+static LuaValueLuaDouble.dmod(double lhs, + double rhs) + +
+          Take modulo double numbers according to lua math, and return a LuaValue result.
+ LuaValueLuaDouble.eq(LuaValue val) + +
+           
+ LuaValueLuaInteger.eq(LuaValue val) + +
+           
+ LuaValueLuaString.eq(LuaValue val) + +
+           
+ LuaValueLuaTable.eq(LuaValue val) + +
+           
+ LuaValueLuaUserdata.eq(LuaValue val) + +
+           
+ LuaValueLuaValue.eq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using EQ.
+static LuaValueLuaValue.error(java.lang.String message) + +
+          Throw a LuaError with a particular message
+ LuaValueLuaTable.get(int key) + +
+           
+ LuaValueLuaValue.get(int key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValueLuaTable.get(LuaValue key) + +
+           
+ LuaValueLuaUserdata.get(LuaValue key) + +
+           
+ LuaValueLuaValue.get(LuaValue key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValueLuaValue.get(java.lang.String key) + +
+          Get a value in a table including metatag processing using INDEX.
+ LuaValueLuaError.getMessageObject() + +
+          Get the LuaValue that was provided in the constructor, or + a LuaString containing the message if it was a string error argument.
+ LuaValueLuaBoolean.getmetatable() + +
+           
+ LuaValueLuaClosure.getmetatable() + +
+           
+ LuaValueLuaFunction.getmetatable() + +
+           
+ LuaValueLuaNil.getmetatable() + +
+           
+ LuaValueLuaNumber.getmetatable() + +
+           
+ LuaValueLuaString.getmetatable() + +
+           
+ LuaValueLuaTable.getmetatable() + +
+           
+ LuaValueLuaThread.getmetatable() + +
+           
+ LuaValueLuaUserdata.getmetatable() + +
+           
+ LuaValueLuaValue.getmetatable() + +
+          Get the metatable for this LuaValue
+protected static LuaValueLuaValue.gettable(LuaValue t, + LuaValue key) + +
+          get value from metatable operations, or NIL if not defined by metatables
+protected  LuaValueLuaClosure.getUpvalue(int i) + +
+           
+ LuaValueUpValue.getValue() + +
+          Get the value of the upvalue
+ LuaValueLuaDouble.gt(double rhs) + +
+           
+ LuaValueLuaInteger.gt(double rhs) + +
+           
+ LuaValueLuaValue.gt(double rhs) + +
+          Greater than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.gt(int rhs) + +
+           
+ LuaValueLuaInteger.gt(int rhs) + +
+           
+ LuaValueLuaValue.gt(int rhs) + +
+          Greater than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.gt(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.gt(LuaValue rhs) + +
+           
+ LuaValueLuaString.gt(LuaValue rhs) + +
+           
+ LuaValueLuaValue.gt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.gteq(double rhs) + +
+           
+ LuaValueLuaInteger.gteq(double rhs) + +
+           
+ LuaValueLuaValue.gteq(double rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.gteq(int rhs) + +
+           
+ LuaValueLuaInteger.gteq(int rhs) + +
+           
+ LuaValueLuaValue.gteq(int rhs) + +
+          Greater than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaString.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaValue.gteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+protected  LuaValueLuaTable.hashget(LuaValue key) + +
+           
+protected  LuaValueLuaValue.illegal(java.lang.String op, + java.lang.String typename) + +
+          Throw a LuaError indicating an illegal operation occurred, + typically involved in managing weak references
+ LuaValue[]LuaTable.keys() + +
+          This may be deprecated in a future release.
+ LuaValueLuaString.len() + +
+           
+ LuaValueLuaTable.len() + +
+           
+ LuaValueLuaValue.len() + +
+          Length operator: return lua length of object (#this) including metatag processing as java int
+protected  LuaValueLuaValue.lenerror() + +
+          Throw a LuaError based on the len operator, + typically due to an invalid operand type
+ LuaValueGlobals.load(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue environment) + +
+          Load the content form an input stream as a binary chunk or text file.
+ LuaValueLuaValue.load(LuaValue library) + +
+          Load a library instance by calling it with and empty string as the modname, + and this Globals as the environment.
+ LuaValueGlobals.load(java.io.Reader reader, + java.lang.String chunkname) + +
+          Load the content form a reader as a text file.
+ LuaValueGlobals.load(java.io.Reader reader, + java.lang.String chunkname, + LuaTable environment) + +
+          Load the content form a reader as a text file, supplying a custom environment.
+ LuaValueGlobals.load(java.lang.String script) + +
+          Convenience function to load a string value as a script.
+ LuaValueGlobals.load(java.lang.String script, + java.lang.String chunkname) + +
+          Convenience function to load a string value as a script.
+ LuaValueGlobals.load(java.lang.String script, + java.lang.String chunkname, + LuaTable environment) + +
+          Convenience function to load a string value as a script with a custom environment.
+ LuaValueGlobals.loadfile(java.lang.String filename) + +
+          Convenience function for loading a file that is either binary lua or lua source.
+static LuaValueLoadState.longBitsToLuaNumber(long bits) + +
+          Convert bits in a long value to a LuaValue.
+ LuaValueLuaDouble.lt(double rhs) + +
+           
+ LuaValueLuaInteger.lt(double rhs) + +
+           
+ LuaValueLuaValue.lt(double rhs) + +
+          Less than: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.lt(int rhs) + +
+           
+ LuaValueLuaInteger.lt(int rhs) + +
+           
+ LuaValueLuaValue.lt(int rhs) + +
+          Less than: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.lt(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.lt(LuaValue rhs) + +
+           
+ LuaValueLuaString.lt(LuaValue rhs) + +
+           
+ LuaValueLuaValue.lt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.lteq(double rhs) + +
+           
+ LuaValueLuaInteger.lteq(double rhs) + +
+           
+ LuaValueLuaValue.lteq(double rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of double type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.lteq(int rhs) + +
+           
+ LuaValueLuaInteger.lteq(int rhs) + +
+           
+ LuaValueLuaValue.lteq(int rhs) + +
+          Less than or equals: Perform numeric comparison with another value + of int type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaDouble.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaString.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaValue.lteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ LuaValueLuaValue.metatag(LuaValue tag) + +
+          Get particular metatag, or return NIL if it doesn't exist
+ LuaValueLuaValue.method(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(LuaValue name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(LuaValue name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(java.lang.String name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(java.lang.String name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(java.lang.String name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaDouble.mod(double rhs) + +
+           
+ LuaValueLuaInteger.mod(double rhs) + +
+           
+ LuaValueLuaString.mod(double rhs) + +
+           
+ LuaValueLuaValue.mod(double rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of double type without metatag processing
+ LuaValueLuaDouble.mod(int rhs) + +
+           
+ LuaValueLuaInteger.mod(int rhs) + +
+           
+ LuaValueLuaString.mod(int rhs) + +
+           
+ LuaValueLuaValue.mod(int rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of int type without metatag processing
+ LuaValueLuaDouble.mod(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.mod(LuaValue rhs) + +
+           
+ LuaValueLuaString.mod(LuaValue rhs) + +
+           
+ LuaValueLuaValue.mod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValueLuaDouble.modFrom(double lhs) + +
+           
+ LuaValueLuaInteger.modFrom(double lhs) + +
+           
+ LuaValueLuaString.modFrom(double lhs) + +
+           
+ LuaValueLuaValue.modFrom(double lhs) + +
+          Reverse-modulo: Perform numeric modulo operation from another value + with metatag processing
+ LuaValueLuaDouble.mul(double lhs) + +
+           
+ LuaValueLuaInteger.mul(double lhs) + +
+           
+ LuaValueLuaString.mul(double rhs) + +
+           
+ LuaValueLuaValue.mul(double rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of double type with metatag processing
+ LuaValueLuaDouble.mul(int lhs) + +
+           
+ LuaValueLuaInteger.mul(int lhs) + +
+           
+ LuaValueLuaString.mul(int rhs) + +
+           
+ LuaValueLuaValue.mul(int rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of int type with metatag processing
+ LuaValueLuaDouble.mul(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.mul(LuaValue rhs) + +
+           
+ LuaValueLuaString.mul(LuaValue rhs) + +
+           
+ LuaValueLuaValue.mul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ LuaValueLuaDouble.neg() + +
+           
+ LuaValueLuaInteger.neg() + +
+           
+ LuaValueLuaString.neg() + +
+           
+ LuaValueLuaValue.neg() + +
+          Unary minus: return negative value (-this) as defined by lua unary minus operator
+ LuaValueLuaValue.neq(LuaValue val) + +
+          Notquals: Perform inequality comparison with another value + including metatag processing using EQ.
+ LuaValueLuaBoolean.not() + +
+           
+ LuaValueLuaNil.not() + +
+           
+ LuaValueLuaValue.not() + +
+          Unary not: return inverse boolean value (~this) as defined by lua not operator
+ LuaValueVarargs.optvalue(int i, + LuaValue defval) + +
+          Return argument i as a LuaValue if it exists, or defval.
+ LuaValueLuaNil.optvalue(LuaValue defval) + +
+           
+ LuaValueLuaValue.optvalue(LuaValue defval) + +
+          Perform argument check that this is not nil or none.
+ LuaValueLuaValue.or(LuaValue rhs) + +
+          Perform boolean or with another operand, based on lua rules for boolean evaluation.
+ LuaValueLuaDouble.pow(double rhs) + +
+           
+ LuaValueLuaInteger.pow(double rhs) + +
+           
+ LuaValueLuaString.pow(double rhs) + +
+           
+ LuaValueLuaValue.pow(double rhs) + +
+          Raise to power: Raise this value to a power + of double type with metatag processing
+ LuaValueLuaDouble.pow(int rhs) + +
+           
+ LuaValueLuaInteger.pow(int rhs) + +
+           
+ LuaValueLuaString.pow(int rhs) + +
+           
+ LuaValueLuaValue.pow(int rhs) + +
+          Raise to power: Raise this value to a power + of int type with metatag processing
+ LuaValueLuaDouble.pow(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.pow(LuaValue rhs) + +
+           
+ LuaValueLuaString.pow(LuaValue rhs) + +
+           
+ LuaValueLuaValue.pow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+ LuaValueLuaDouble.powWith(double lhs) + +
+           
+ LuaValueLuaInteger.powWith(double lhs) + +
+           
+ LuaValueLuaString.powWith(double lhs) + +
+           
+ LuaValueLuaValue.powWith(double lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValueLuaDouble.powWith(int lhs) + +
+           
+ LuaValueLuaInteger.powWith(int lhs) + +
+           
+ LuaValueLuaString.powWith(int lhs) + +
+           
+ LuaValueLuaValue.powWith(int lhs) + +
+          Reverse-raise to power: Raise another value of double type to this power + with metatag processing
+ LuaValueLuaTable.rawget(int key) + +
+           
+ LuaValueLuaValue.rawget(int key) + +
+          Get a value in a table without metatag processing.
+ LuaValueLuaTable.rawget(LuaValue key) + +
+           
+ LuaValueLuaValue.rawget(LuaValue key) + +
+          Get a value in a table without metatag processing.
+ LuaValueLuaValue.rawget(java.lang.String key) + +
+          Get a value in a table without metatag processing.
+ LuaValueLuaTable.remove(int pos) + +
+          Remove the element at a position in a list-table
+ LuaValueLuaTable.setmetatable(LuaValue metatable) + +
+           
+ LuaValueLuaUserdata.setmetatable(LuaValue metatable) + +
+           
+ LuaValueLuaValue.setmetatable(LuaValue metatable) + +
+          Set the metatable for this LuaValue
+protected static LuaValueWeakTable.strengthen(java.lang.Object ref) + +
+          Unwrap a LuaValue from a WeakReference and/or WeakUserdata.
+ LuaValueWeakTable.WeakSlot.strongkey() + +
+           
+ LuaValueLuaValue.strongvalue() + +
+          Return this value as a strong reference, or null if it was weak and is no longer referenced.
+ LuaValueWeakTable.WeakSlot.strongvalue() + +
+           
+ LuaValueLuaDouble.sub(double rhs) + +
+           
+ LuaValueLuaInteger.sub(double rhs) + +
+           
+ LuaValueLuaString.sub(double rhs) + +
+           
+ LuaValueLuaValue.sub(double rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of double type with metatag processing
+ LuaValueLuaDouble.sub(int rhs) + +
+           
+ LuaValueLuaInteger.sub(int rhs) + +
+           
+ LuaValueLuaString.sub(int rhs) + +
+           
+ LuaValueLuaValue.sub(int rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of int type with metatag processing
+ LuaValueLuaDouble.sub(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.sub(LuaValue rhs) + +
+           
+ LuaValueLuaString.sub(LuaValue rhs) + +
+           
+ LuaValueLuaValue.sub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+ LuaValueLuaDouble.subFrom(double lhs) + +
+           
+ LuaValueLuaInteger.subFrom(double lhs) + +
+           
+ LuaValueLuaString.subFrom(double lhs) + +
+           
+ LuaValueLuaValue.subFrom(double lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from an int value + with metatag processing
+ LuaValueLuaInteger.subFrom(int lhs) + +
+           
+ LuaValueLuaValue.subFrom(int lhs) + +
+          Reverse-subtract: Perform numeric subtract operation from a double value + without metatag processing
+ LuaValueLuaTable.toLuaValue() + +
+           
+ LuaValueWeakTable.toLuaValue() + +
+           
+ LuaValueLuaDouble.tonumber() + +
+           
+ LuaValueLuaNumber.tonumber() + +
+           
+ LuaValueLuaString.tonumber() + +
+          convert to a number using baee 10 or base 16 if it starts with '0x', + or NIL if it can't be converted
+ LuaValueLuaValue.tonumber() + +
+          Conditionally convert to lua number without throwing errors.
+ LuaValueLuaString.tonumber(int base) + +
+          convert to a number using a supplied base, or NIL if it can't be converted
+ LuaValueLuaDouble.tostring() + +
+           
+ LuaValueLuaInteger.tostring() + +
+           
+ LuaValueLuaString.tostring() + +
+           
+ LuaValueLuaValue.tostring() + +
+          Conditionally convert to lua string without throwing errors.
+protected  LuaValueLuaValue.typerror(java.lang.String expected) + +
+          Throw a LuaError indicating an invalid type was supplied to a function
+protected  LuaValueLuaValue.unimplemented(java.lang.String fun) + +
+          Throw a LuaError indicating an operation is not implemented
+ LuaValueBuffer.value() + +
+          Get buffer contents as a LuaValue
+protected static LuaValueWeakTable.weaken(LuaValue value) + +
+          Self-sent message to convert a value to its weak counterpart
+ LuaValueLuaTable.wrap(LuaValue value) + +
+           
+ LuaValueWeakTable.wrap(LuaValue value) + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type LuaValue
+ LuaValueLuaDouble.add(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.add(LuaValue rhs) + +
+           
+ LuaValueLuaString.add(LuaValue rhs) + +
+           
+ LuaValueLuaValue.add(LuaValue rhs) + +
+          Add: Perform numeric add operation with another value + including metatag processing.
+ LuaValueLuaValue.and(LuaValue rhs) + +
+          Perform boolean and with another operand, based on lua rules for boolean evaluation.
+ BufferBuffer.append(LuaValue val) + +
+          Append a LuaValue to the buffer.
+protected  LuaValueLuaValue.arithmt(LuaValue tag, + LuaValue op2) + +
+          Perform metatag processing for arithmetic operations.
+protected  LuaValueLuaValue.arithmtwith(LuaValue tag, + double op1) + +
+          Perform metatag processing for arithmetic operations when the left-hand-side is a number.
+ LuaValueLuaTable.arrayget(LuaValue[] array, + int index) + +
+           
+ LuaValueWeakTable.arrayget(LuaValue[] array, + int index) + +
+           
+ LuaValueLuaClosure.call(LuaValue arg) + +
+           
+ LuaValueLuaValue.call(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaClosure.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueLuaValue.call(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaClosure.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueLuaValue.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+protected  LuaValueLuaValue.checkmetatag(LuaValue tag, + java.lang.String reason) + +
+          Get particular metatag, or throw LuaError if it doesn't exist
+protected  LuaValueLuaValue.compareerror(LuaValue rhs) + +
+          Throw a LuaError based on a comparison error such as greater-than or less-than, + typically due to an invalid operand type
+ LuaValueLuaValue.comparemt(LuaValue tag, + LuaValue op1) + +
+          Perform metatag processing for comparison operations.
+ LuaValueLuaNumber.concat(LuaValue rhs) + +
+           
+ LuaValueLuaString.concat(LuaValue rhs) + +
+           
+ LuaValueLuaValue.concat(LuaValue rhs) + +
+          Concatenate another value onto this value and return the result + using rules of lua string concatenation including metatag processing.
+ LuaValueLuaValue.concatmt(LuaValue rhs) + +
+          Perform metatag processing for concatenation operations.
+ BufferBuffer.concatTo(LuaValue lhs) + +
+          Concatenate this buffer onto a LuaValue
+ LuaValueLuaValue.concatTo(LuaValue lhs) + +
+          Reverse-concatenation: concatenate this value onto another value + whose type is unknwon + and return the result using rules of lua string concatenation including + metatag processing.
+protected static org.luaj.vm2.LuaTable.EntryLuaTable.defaultEntry(LuaValue key, + LuaValue value) + +
+           
+ LuaValueLuaDouble.div(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.div(LuaValue rhs) + +
+           
+ LuaValueLuaString.div(LuaValue rhs) + +
+           
+ LuaValueLuaValue.div(LuaValue rhs) + +
+          Divide: Perform numeric divide operation by another value + of unknown type, + including metatag processing.
+ org.luaj.vm2.LuaTable.SlotLuaTable.entry(LuaValue key, + LuaValue value) + +
+           
+ org.luaj.vm2.LuaTable.SlotWeakTable.entry(LuaValue key, + LuaValue value) + +
+           
+ booleanLuaDouble.eq_b(LuaValue val) + +
+           
+ booleanLuaInteger.eq_b(LuaValue val) + +
+           
+ booleanLuaString.eq_b(LuaValue val) + +
+           
+ booleanLuaTable.eq_b(LuaValue val) + +
+           
+ booleanLuaUserdata.eq_b(LuaValue val) + +
+           
+ booleanLuaValue.eq_b(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using EQ, + and return java boolean
+ LuaValueLuaDouble.eq(LuaValue val) + +
+           
+ LuaValueLuaInteger.eq(LuaValue val) + +
+           
+ LuaValueLuaString.eq(LuaValue val) + +
+           
+ LuaValueLuaTable.eq(LuaValue val) + +
+           
+ LuaValueLuaUserdata.eq(LuaValue val) + +
+           
+ LuaValueLuaValue.eq(LuaValue val) + +
+          Equals: Perform equality comparison with another value + including metatag processing using EQ.
+ booleanLuaUserdata.eqmt(LuaValue val) + +
+           
+static booleanLuaValue.eqmtcall(LuaValue lhs, + LuaValue lhsmt, + LuaValue rhs, + LuaValue rhsmt) + +
+          Perform equality testing metatag processing
+protected  VarargsLuaClosure.execute(LuaValue[] stack, + Varargs varargs) + +
+           
+ org.luaj.vm2.LuaTable.StrongSlotWeakTable.WeakSlot.find(LuaValue key) + +
+           
+ LuaValueLuaTable.get(LuaValue key) + +
+           
+ LuaValueLuaUserdata.get(LuaValue key) + +
+           
+ LuaValueLuaValue.get(LuaValue key) + +
+          Get a value in a table including metatag processing using INDEX.
+protected static LuaValueLuaValue.gettable(LuaValue t, + LuaValue key) + +
+          get value from metatable operations, or NIL if not defined by metatables
+ booleanLuaDouble.gt_b(LuaValue rhs) + +
+           
+ booleanLuaInteger.gt_b(LuaValue rhs) + +
+           
+ booleanLuaString.gt_b(LuaValue rhs) + +
+           
+ booleanLuaValue.gt_b(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValueLuaDouble.gt(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.gt(LuaValue rhs) + +
+           
+ LuaValueLuaString.gt(LuaValue rhs) + +
+           
+ LuaValueLuaValue.gt(LuaValue rhs) + +
+          Greater than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanLuaDouble.gteq_b(LuaValue rhs) + +
+           
+ booleanLuaInteger.gteq_b(LuaValue rhs) + +
+           
+ booleanLuaString.gteq_b(LuaValue rhs) + +
+           
+ booleanLuaValue.gteq_b(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValueLuaDouble.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaString.gteq(LuaValue rhs) + +
+           
+ LuaValueLuaValue.gteq(LuaValue rhs) + +
+          Greater than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+protected  LuaValueLuaTable.hashget(LuaValue key) + +
+           
+ voidLuaTable.hashset(LuaValue key, + LuaValue value) + +
+          Set a hashtable value
+static intLuaTable.hashSlot(LuaValue key, + int hashMask) + +
+          Find the hashtable slot index to use.
+ VarargsLuaTable.inext(LuaValue key) + +
+          Get the next element after a particular key in the + contiguous array part of a table
+ VarargsLuaValue.inext(LuaValue index) + +
+          Find the next integer-key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table.
+ voidLuaValue.initupvalue1(LuaValue env) + +
+          Hook for implementations such as LuaJC to load the environment of the main chunk + into the first upvalue location.
+ voidLuaTable.insert(int pos, + LuaValue value) + +
+          Insert an element at a position in a list-table
+ VarargsLuaValue.invoke(LuaValue[] args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue[] args, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg1, + LuaValue arg2, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + LuaValue[] args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + LuaValue[] args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + Varargs args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(java.lang.String name, + LuaValue[] args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+protected static booleanLuaTable.isLargeKey(LuaValue key) + +
+           
+ booleanWeakTable.WeakSlot.keyeq(LuaValue key) + +
+           
+static LuaTableLuaValue.listOf(LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied array values.
+static LuaTableLuaValue.listOf(LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied array values.
+ LuaValueGlobals.load(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue environment) + +
+          Load the content form an input stream as a binary chunk or text file.
+ LuaValueLuaValue.load(LuaValue library) + +
+          Load a library instance by calling it with and empty string as the modname, + and this Globals as the environment.
+ LuaFunctionGlobals.Loader.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+ booleanLuaDouble.lt_b(LuaValue rhs) + +
+           
+ booleanLuaInteger.lt_b(LuaValue rhs) + +
+           
+ booleanLuaString.lt_b(LuaValue rhs) + +
+           
+ booleanLuaValue.lt_b(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValueLuaDouble.lt(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.lt(LuaValue rhs) + +
+           
+ LuaValueLuaString.lt(LuaValue rhs) + +
+           
+ LuaValueLuaValue.lt(LuaValue rhs) + +
+          Less than: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+ booleanLuaDouble.lteq_b(LuaValue rhs) + +
+           
+ booleanLuaInteger.lteq_b(LuaValue rhs) + +
+           
+ booleanLuaString.lteq_b(LuaValue rhs) + +
+           
+ booleanLuaValue.lteq_b(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, including metatag processing, + and returning java boolean.
+ LuaValueLuaDouble.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaString.lteq(LuaValue rhs) + +
+           
+ LuaValueLuaValue.lteq(LuaValue rhs) + +
+          Less than or equals: Perform numeric or string comparison with another value + of unknown type, + including metatag processing, and returning LuaValue.
+protected static org.luaj.vm2.MetatableLuaValue.metatableOf(LuaValue mt) + +
+          Construct a Metatable instance from the given LuaValue
+ LuaValueLuaValue.metatag(LuaValue tag) + +
+          Get particular metatag, or return NIL if it doesn't exist
+ LuaValueLuaValue.method(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(LuaValue name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(LuaValue name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(java.lang.String name, + LuaValue arg) + +
+          Call named method on this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValueLuaValue.method(java.lang.String name, + LuaValue arg1, + LuaValue arg2) + +
+          Call named method on this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValueLuaDouble.mod(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.mod(LuaValue rhs) + +
+           
+ LuaValueLuaString.mod(LuaValue rhs) + +
+           
+ LuaValueLuaValue.mod(LuaValue rhs) + +
+          Modulo: Perform numeric modulo operation with another value + of unknown type, + including metatag processing.
+ LuaValueLuaDouble.mul(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.mul(LuaValue rhs) + +
+           
+ LuaValueLuaString.mul(LuaValue rhs) + +
+           
+ LuaValueLuaValue.mul(LuaValue rhs) + +
+          Multiply: Perform numeric multiply operation with another value + of unknown type, + including metatag processing.
+ booleanLuaValue.neq_b(LuaValue val) + +
+          Notquals: Perform inequality comparison with another value + including metatag processing using EQ.
+ LuaValueLuaValue.neq(LuaValue val) + +
+          Notquals: Perform inequality comparison with another value + including metatag processing using EQ.
+ VarargsLuaTable.next(LuaValue key) + +
+          Get the next element after a particular key in the table
+ VarargsLuaValue.next(LuaValue index) + +
+          Find the next key,value pair if this is a table, + return NIL if there are no more, or throw a LuaError if not a table.
+ LuaValueVarargs.optvalue(int i, + LuaValue defval) + +
+          Return argument i as a LuaValue if it exists, or defval.
+ LuaValueLuaNil.optvalue(LuaValue defval) + +
+           
+ LuaValueLuaValue.optvalue(LuaValue defval) + +
+          Perform argument check that this is not nil or none.
+ LuaValueLuaValue.or(LuaValue rhs) + +
+          Perform boolean or with another operand, based on lua rules for boolean evaluation.
+ LuaValueLuaDouble.pow(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.pow(LuaValue rhs) + +
+           
+ LuaValueLuaString.pow(LuaValue rhs) + +
+           
+ LuaValueLuaValue.pow(LuaValue rhs) + +
+          Raise to power: Raise this value to a power + including metatag processing.
+static voidPrint.printStack(LuaValue[] stack, + int top, + Varargs varargs) + +
+           
+static voidPrint.printState(LuaClosure cl, + int pc, + LuaValue[] stack, + int top, + Varargs varargs) + +
+          Print the state of a LuaClosure that is being executed
+ booleanLuaDouble.raweq(LuaValue val) + +
+           
+ booleanLuaInteger.raweq(LuaValue val) + +
+           
+ booleanLuaString.raweq(LuaValue val) + +
+           
+ booleanLuaUserdata.raweq(LuaValue val) + +
+           
+ booleanLuaValue.raweq(LuaValue val) + +
+          Equals: Perform direct equality comparison with another value + without metatag processing.
+ LuaValueLuaTable.rawget(LuaValue key) + +
+           
+ LuaValueLuaValue.rawget(LuaValue key) + +
+          Get a value in a table without metatag processing.
+ voidLuaTable.rawset(int key, + LuaValue value) + +
+           
+ voidLuaValue.rawset(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidLuaTable.rawset(LuaValue key, + LuaValue value) + +
+          caller must ensure key is not nil
+ voidLuaValue.rawset(LuaValue key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidLuaValue.rawset(java.lang.String key, + LuaValue value) + +
+          Set a value in a table without metatag processing.
+ voidLuaTable.set(int key, + LuaValue value) + +
+           
+ voidLuaValue.set(int key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ org.luaj.vm2.LuaTable.SlotWeakTable.WeakSlot.set(org.luaj.vm2.LuaTable.StrongSlot target, + LuaValue value) + +
+           
+abstract  org.luaj.vm2.LuaTable.SlotWeakTable.WeakSlot.set(LuaValue value) + +
+           
+ voidLuaTable.set(LuaValue key, + LuaValue value) + +
+          caller must ensure key is not nil
+ voidLuaUserdata.set(LuaValue key, + LuaValue value) + +
+           
+ voidLuaValue.set(LuaValue key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ voidLuaValue.set(java.lang.String key, + LuaValue value) + +
+          Set a value in a table without metatag processing using NEWINDEX.
+ LuaValueLuaTable.setmetatable(LuaValue metatable) + +
+           
+ LuaValueLuaUserdata.setmetatable(LuaValue metatable) + +
+           
+ LuaValueLuaValue.setmetatable(LuaValue metatable) + +
+          Set the metatable for this LuaValue
+protected static booleanLuaValue.settable(LuaValue t, + LuaValue key, + LuaValue value) + +
+          Perform field assignment including metatag processing.
+protected  voidLuaClosure.setUpvalue(int i, + LuaValue v) + +
+           
+ BufferBuffer.setvalue(LuaValue value) + +
+          Set buffer contents as a LuaValue
+ voidUpValue.setValue(LuaValue value) + +
+          Set the value of the upvalue
+ voidLuaTable.sort(LuaValue comparator) + +
+          Sort the table using a comparator.
+ intLuaString.strcmp(LuaValue lhs) + +
+           
+ intLuaValue.strcmp(LuaValue rhs) + +
+          Perform string comparison with another value + of any type + using string comparison based on byte values.
+ LuaValueLuaDouble.sub(LuaValue rhs) + +
+           
+ LuaValueLuaInteger.sub(LuaValue rhs) + +
+           
+ LuaValueLuaString.sub(LuaValue rhs) + +
+           
+ LuaValueLuaValue.sub(LuaValue rhs) + +
+          Subtract: Perform numeric subtract operation with another value + of unknown type, + including metatag processing.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues) + +
+          Construct a LuaTable initialized with supplied named values.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs.
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs.
+static VarargsLuaValue.tailcallOf(LuaValue func, + Varargs args) + +
+          Construct a TailcallVarargs around a function and arguments.
+ booleanLuaValue.testfor_b(LuaValue limit, + LuaValue step) + +
+          Perform end-condition test in for-loop processing.
+static LuaUserdataLuaValue.userdataOf(java.lang.Object o, + LuaValue metatable) + +
+          Construct a LuaUserdata for an object with a user supplied metatable.
+static VarargsLuaValue.varargsOf(LuaValue[] v) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + int offset, + int length) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + int offset, + int length, + Varargs more) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + Varargs r) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v1, + LuaValue v2, + Varargs v3) + +
+          Construct a Varargs around a set of 3 or more LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v, + Varargs r) + +
+          Construct a Varargs around a set of 2 or more LuaValues.
+protected static LuaValueWeakTable.weaken(LuaValue value) + +
+          Self-sent message to convert a value to its weak counterpart
+ LuaValueLuaTable.wrap(LuaValue value) + +
+           
+ LuaValueWeakTable.wrap(LuaValue value) + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Constructors in org.luaj.vm2 with parameters of type LuaValue
Buffer(LuaValue value) + +
+          Create buffer with specified initial value
LuaClosure(Prototype p, + LuaValue env) + +
+          Create a closure around a Prototype with a specific environment.
LuaError(LuaValue message_object) + +
+          Construct a LuaError with a LuaValue as the message object, + and level to draw line number information from.
LuaTable(LuaValue[] named, + LuaValue[] unnamed, + Varargs lastarg) + +
+          Construct table with named and unnamed parts.
LuaTable(LuaValue[] named, + LuaValue[] unnamed, + Varargs lastarg) + +
+          Construct table with named and unnamed parts.
LuaThread(Globals globals, + LuaValue func) + +
+          Create a LuaThread around a function and environment
LuaUserdata(java.lang.Object obj, + LuaValue metatable) + +
+           
TailcallVarargs(LuaValue object, + LuaValue methodname, + Varargs args) + +
+           
TailcallVarargs(LuaValue f, + Varargs args) + +
+           
UpValue(LuaValue[] stack, + int index) + +
+          Create an upvalue relative to a stack
WeakTable(boolean weakkeys, + boolean weakvalues, + LuaValue backing) + +
+          Construct a table with weak keys, weak values, or both
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.compiler that return LuaValue
+ LuaValueLuaC.load(java.io.InputStream stream, + java.lang.String chunkname, + Globals globals) + +
+          Deprecated. Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly.
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.compiler with parameters of type LuaValue
+ LuaFunctionLuaC.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+           
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LuaValue in org.luaj.vm2.lib
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+ classBit32Lib + +
+          Subclass of LibFunction that implements the Lua standard bit32 library.
+ classCoroutineLib + +
+          Subclass of LibFunction which implements the lua standard coroutine + library.
+ classDebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
+ classIoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
+protected  classIoLib.File + +
+           
+ classLibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
+ classMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+protected static classMathLib.BinaryOp + +
+           
+protected static classMathLib.UnaryOp + +
+           
+ classOneArgFunction + +
+          Abstract base class for Java function implementations that take one argument and + return one value.
+ classOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classPackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+ classPackageLib.searchpath + +
+           
+ classStringLib + +
+          Subclass of LibFunction which implements the lua standard string + library.
+ classTableLib + +
+          Subclass of LibFunction which implements the lua standard table + library.
+ classThreeArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classTwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classVarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+ classZeroArgFunction + +
+          Abstract base class for Java function implementations that take no arguments and + return one value.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib that return LuaValue
+ LuaValueLibFunction.call() + +
+           
+ LuaValueOneArgFunction.call() + +
+           
+ LuaValueThreeArgFunction.call() + +
+           
+ LuaValueTwoArgFunction.call() + +
+           
+ LuaValueVarArgFunction.call() + +
+           
+abstract  LuaValueZeroArgFunction.call() + +
+           
+ LuaValueLibFunction.call(LuaValue a) + +
+           
+ LuaValueMathLib.UnaryOp.call(LuaValue arg) + +
+           
+abstract  LuaValueOneArgFunction.call(LuaValue arg) + +
+           
+ LuaValuePackageLib.require.call(LuaValue arg) + +
+           
+ LuaValueThreeArgFunction.call(LuaValue arg) + +
+           
+ LuaValueTwoArgFunction.call(LuaValue arg) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg) + +
+           
+ LuaValueBaseLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding base functions + to the supplied environment, and returning it as the return value.
+ LuaValueBit32Lib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueCoroutineLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueDebugLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueIoLib.call(LuaValue modname, + LuaValue env) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b) + +
+           
+ LuaValueMathLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueMathLib.BinaryOp.call(LuaValue x, + LuaValue y) + +
+           
+ LuaValueOneArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueOsLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValuePackageLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding package functions + to the supplied environment, and returning it as the return value.
+ LuaValueStringLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueTableLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueThreeArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+abstract  LuaValueTwoArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b, + LuaValue c) + +
+           
+ LuaValueOneArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+abstract  LuaValueThreeArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueTwoArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b, + LuaValue c, + LuaValue d) + +
+           
+static LuaValueMathLib.dpow(double a, + double b) + +
+          compute power using installed math library, or default if there is no math library installed
+static LuaValueIoLib.freadall(IoLib.File f) + +
+           
+static LuaValueIoLib.freadbytes(IoLib.File f, + int count) + +
+           
+static LuaValueIoLib.freadline(IoLib.File f) + +
+           
+static LuaValueIoLib.freadnumber(IoLib.File f) + +
+           
+static LuaValueIoLib.freaduntil(IoLib.File f, + boolean lineonly) + +
+           
+ LuaValueIoLib.File.get(LuaValue key) + +
+           
+protected static LuaValue[]LibFunction.newupe() + +
+          Java code generation utility to allocate storage for upvalue, leave it empty
+protected static LuaValue[]LibFunction.newupl(LuaValue v) + +
+          Java code generation utility to allocate storage for upvalue, initialize with value
+protected static LuaValue[]LibFunction.newupn() + +
+          Java code generation utility to allocate storage for upvalue, initialize with nil
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type LuaValue
+ VarargsIoLib._file_close(LuaValue file) + +
+           
+ VarargsIoLib._file_flush(LuaValue file) + +
+           
+ VarargsIoLib._file_lines(LuaValue file) + +
+           
+ VarargsIoLib._file_read(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._file_seek(LuaValue file, + java.lang.String whence, + int offset) + +
+           
+ VarargsIoLib._file_setvbuf(LuaValue file, + java.lang.String mode, + int size) + +
+           
+ VarargsIoLib._file_write(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._io_close(LuaValue file) + +
+           
+ VarargsIoLib._io_index(LuaValue v) + +
+           
+ VarargsIoLib._io_input(LuaValue file) + +
+           
+ VarargsIoLib._io_output(LuaValue filename) + +
+           
+ VarargsIoLib._io_type(LuaValue obj) + +
+           
+ VarargsIoLib._lines_iter(LuaValue file) + +
+           
+protected  voidLibFunction.bind(LuaValue env, + java.lang.Class factory, + java.lang.String[] names) + +
+          Bind a set of library functions.
+protected  voidLibFunction.bind(LuaValue env, + java.lang.Class factory, + java.lang.String[] names, + int firstopcode) + +
+          Bind a set of library functions, with an offset
+ LuaValueLibFunction.call(LuaValue a) + +
+           
+ LuaValueMathLib.UnaryOp.call(LuaValue arg) + +
+           
+abstract  LuaValueOneArgFunction.call(LuaValue arg) + +
+           
+ LuaValuePackageLib.require.call(LuaValue arg) + +
+           
+ LuaValueThreeArgFunction.call(LuaValue arg) + +
+           
+ LuaValueTwoArgFunction.call(LuaValue arg) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg) + +
+           
+ LuaValueBaseLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding base functions + to the supplied environment, and returning it as the return value.
+ LuaValueBit32Lib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueCoroutineLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueDebugLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueIoLib.call(LuaValue modname, + LuaValue env) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b) + +
+           
+ LuaValueMathLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueMathLib.BinaryOp.call(LuaValue x, + LuaValue y) + +
+           
+ LuaValueOneArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueOsLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValuePackageLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding package functions + to the supplied environment, and returning it as the return value.
+ LuaValueStringLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueTableLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueThreeArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+abstract  LuaValueTwoArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg1, + LuaValue arg2) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b, + LuaValue c) + +
+           
+ LuaValueOneArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+abstract  LuaValueThreeArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueTwoArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueVarArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueZeroArgFunction.call(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+           
+ LuaValueLibFunction.call(LuaValue a, + LuaValue b, + LuaValue c, + LuaValue d) + +
+           
+ LuaValueIoLib.File.get(LuaValue key) + +
+           
+ VarargsBaseLib.loadFile(java.lang.String filename, + java.lang.String mode, + LuaValue env) + +
+          Load from a named file, returning the chunk or nil,error of can't load
+ VarargsBaseLib.loadStream(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue env) + +
+           
+protected static LuaValue[]LibFunction.newupl(LuaValue v) + +
+          Java code generation utility to allocate storage for upvalue, initialize with value
+ voidDebugLib.onCall(LuaClosure c, + Varargs varargs, + LuaValue[] stack) + +
+           
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of LuaValue in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LuaValue in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classLuajavaLib + +
+          Subclass of LibFunction which implements the features of the luajava package.
+  +

+ + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jse that return LuaValue
+ LuaValueJseBaseLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueJseMathLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+static LuaValueCoerceJavaToLua.coerce(java.lang.Object o) + +
+          Coerse a Java object to a corresponding lua value.
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jse with parameters of type LuaValue
+ LuaValueJseBaseLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ LuaValueJseMathLib.call(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+static java.lang.ObjectCoerceLuaToJava.coerce(LuaValue value, + java.lang.Class clazz) + +
+          Coerce a LuaValue value to a specified java class
+static voidJsePlatform.luaMain(LuaValue mainChunk, + java.lang.String[] args) + +
+          Simple wrapper for invoking a lua function with command line arguments.
+  +

+ + + + + +
+Uses of LuaValue in org.luaj.vm2.luajc
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.luajc with parameters of type LuaValue
+ LuaFunctionLuaJC.load(Prototype p, + java.lang.String name, + LuaValue globals) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/OrphanedThread.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/OrphanedThread.html new file mode 100644 index 000000000..68d1a9439 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/OrphanedThread.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.OrphanedThread (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.OrphanedThread

+
+No usage of org.luaj.vm2.OrphanedThread +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Print.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Print.html new file mode 100644 index 000000000..ebf552f51 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Print.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.Print (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Print

+
+No usage of org.luaj.vm2.Print +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Prototype.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Prototype.html new file mode 100644 index 000000000..f2e51a57e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Prototype.html @@ -0,0 +1,446 @@ + + + + + + +Uses of Class org.luaj.vm2.Prototype (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Prototype

+
+ + + + + + + + + + + + + + + + + + + + + +
+Packages that use Prototype
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.lib  
org.luaj.vm2.luajc  
+  +

+ + + + + +
+Uses of Prototype in org.luaj.vm2
+  +

+ + + + + + + + + + + + + +
Fields in org.luaj.vm2 declared as Prototype
+ PrototypeLuaClosure.p + +
+           
+ Prototype[]Prototype.p + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return Prototype
+ PrototypeGlobals.Compiler.compile(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source into a Prototype.
+ PrototypeGlobals.compilePrototype(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source from an InputStream into a Prototype.
+ PrototypeGlobals.compilePrototype(java.io.Reader reader, + java.lang.String chunkname) + +
+          Compile lua source from a Reader into a Prototype.
+ PrototypeLoadState.loadFunction(LuaString p) + +
+          Load a function prototype from the input stream
+ PrototypeGlobals.loadPrototype(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode) + +
+          Load lua source or lua binary from an input stream into a Prototype.
+ PrototypeGlobals.Undumper.undump(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Load the supplied input stream into a prototype.
+static PrototypeLoadState.undump(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Load input stream as a lua binary chunk if the first 4 bytes are the lua binary signature.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type Prototype
+ LuaFunctionGlobals.Loader.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+static voidPrint.print(Prototype prototype) + +
+          Pretty-prints contents of a Prototype.
+static voidPrint.printCode(Prototype f) + +
+          Print the code in a prototype
+static voidPrint.printFunction(Prototype prototype, + boolean full) + +
+          Pretty-prints contents of a Prototype in short or long form.
+static voidPrint.printOpCode(java.io.PrintStream ps, + Prototype f, + int pc) + +
+          Print an opcode in a prototype
+static voidPrint.printOpCode(Prototype f, + int pc) + +
+          Print an opcode in a prototype
+  +

+ + + + + + + + +
Constructors in org.luaj.vm2 with parameters of type Prototype
LuaClosure(Prototype p, + LuaValue env) + +
+          Create a closure around a Prototype with a specific environment.
+  +

+ + + + + +
+Uses of Prototype in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.compiler that return Prototype
+ PrototypeLuaC.compile(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source into a Prototype.
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.compiler with parameters of type Prototype
+ LuaFunctionLuaC.load(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+           
+  +

+ + + + + +
+Uses of Prototype in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type Prototype
+static org.luaj.vm2.lib.DebugLib.NameWhatDebugLib.getobjname(Prototype p, + int lastpc, + int reg) + +
+           
+  +

+ + + + + +
+Uses of Prototype in org.luaj.vm2.luajc
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.luajc with parameters of type Prototype
+ LuaFunctionLuaJC.load(Prototype p, + java.lang.String name, + LuaValue globals) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/TailcallVarargs.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/TailcallVarargs.html new file mode 100644 index 000000000..d5fb890c2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/TailcallVarargs.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.TailcallVarargs (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.TailcallVarargs

+
+No usage of org.luaj.vm2.TailcallVarargs +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/UpValue.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/UpValue.html new file mode 100644 index 000000000..63f79649d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/UpValue.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.UpValue (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.UpValue

+
+ + + + + + + + + +
+Packages that use UpValue
org.luaj.vm2  
+  +

+ + + + + +
+Uses of UpValue in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as UpValue
+ UpValue[]LuaClosure.upValues + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Upvaldesc.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Upvaldesc.html new file mode 100644 index 000000000..b3338cff8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Upvaldesc.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.Upvaldesc (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Upvaldesc

+
+ + + + + + + + + +
+Packages that use Upvaldesc
org.luaj.vm2  
+  +

+ + + + + +
+Uses of Upvaldesc in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as Upvaldesc
+ Upvaldesc[]Prototype.upvalues + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Varargs.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Varargs.html new file mode 100644 index 000000000..6a99ed1dc --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/Varargs.html @@ -0,0 +1,1755 @@ + + + + + + +Uses of Class org.luaj.vm2.Varargs (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.Varargs

+
+ + + + + + + + + + + + + + + + + + + + + +
+Packages that use Varargs
org.luaj.vm2  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of Varargs in org.luaj.vm2
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of Varargs in org.luaj.vm2
+ classGlobals + +
+          Global environment used by luaj.
+ classLuaBoolean + +
+          Extension of LuaValue which can hold a Java boolean as its value.
+ classLuaClosure + +
+          Extension of LuaFunction which executes lua bytecode.
+ classLuaDouble + +
+          Extension of LuaNumber which can hold a Java double as its value.
+ classLuaFunction + +
+          Base class for functions implemented in Java.
+ classLuaInteger + +
+          Extension of LuaNumber which can hold a Java int as its value.
+ classLuaNil + +
+          Class to encapsulate behavior of the singleton instance nil
+ classLuaNumber + +
+          Base class for representing numbers as lua values directly.
+ classLuaString + +
+          Subclass of LuaValue for representing lua strings.
+ classLuaTable + +
+          Subclass of LuaValue for representing lua tables.
+ classLuaThread + +
+          Subclass of LuaValue that implements + a lua coroutine thread using Java Threads.
+ classLuaUserdata + +
+           
+ classLuaValue + +
+          Base class for all concrete lua type values.
+ classTailcallVarargs + +
+          Subclass of Varargs that represents a lua tail call + in a Java library function execution environment.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 that return Varargs
+ VarargsTailcallVarargs.eval() + +
+           
+ VarargsVarargs.eval() + +
+          Evaluate any pending tail call and return result.
+protected  VarargsLuaClosure.execute(LuaValue[] stack, + Varargs varargs) + +
+           
+ VarargsLuaTable.inext(LuaValue key) + +
+          Get the next element after a particular key in the + contiguous array part of a table
+ VarargsLuaValue.inext(LuaValue index) + +
+          Find the next integer-key,value pair if this is a table, + return LuaValue.NIL if there are no more, or throw a LuaError if not a table.
+ VarargsLuaValue.invoke() + +
+          Call this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue[] args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue[] args, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg1, + LuaValue arg2, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaClosure.invoke(Varargs varargs) + +
+           
+ VarargsLuaValue.invoke(Varargs args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + LuaValue[] args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + Varargs args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(java.lang.String name) + +
+          Call named method on this with 0 arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(java.lang.String name, + LuaValue[] args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(java.lang.String name, + Varargs args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaThread.State.lua_resume(LuaThread new_thread, + Varargs args) + +
+           
+ VarargsLuaThread.State.lua_yield(Varargs args) + +
+           
+ VarargsLuaTable.next(LuaValue key) + +
+          Get the next element after a particular key in the table
+ VarargsLuaValue.next(LuaValue index) + +
+          Find the next key,value pair if this is a table, + return LuaValue.NIL if there are no more, or throw a LuaError if not a table.
+ VarargsLuaClosure.onInvoke(Varargs varargs) + +
+           
+ VarargsLuaValue.onInvoke(Varargs args) + +
+          Callback used during tail call processing to invoke the function once.
+ VarargsLuaThread.resume(Varargs args) + +
+           
+ VarargsLuaValue.subargs(int start) + +
+          Create a Varargs instance containing arguments starting at index start
+ VarargsTailcallVarargs.subargs(int start) + +
+           
+abstract  VarargsVarargs.subargs(int start) + +
+          Create a Varargs instance containing arguments starting at index start
+static VarargsLuaValue.tailcallOf(LuaValue func, + Varargs args) + +
+          Construct a TailcallVarargs around a function and arguments.
+ VarargsLuaTable.unpack() + +
+          Unpack all the elements of this table
+ VarargsLuaTable.unpack(int i) + +
+          Unpack all the elements of this table from element i
+ VarargsLuaTable.unpack(int i, + int j) + +
+          Unpack the elements from i to j inclusive
+static VarargsLuaValue.varargsOf(LuaValue[] v) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + int offset, + int length) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + int offset, + int length, + Varargs more) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + Varargs r) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v1, + LuaValue v2, + Varargs v3) + +
+          Construct a Varargs around a set of 3 or more LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v, + Varargs r) + +
+          Construct a Varargs around a set of 2 or more LuaValues.
+ VarargsGlobals.yield(Varargs args) + +
+          Function which yields the current thread.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2 with parameters of type Varargs
+protected  VarargsLuaClosure.execute(LuaValue[] stack, + Varargs varargs) + +
+           
+ VarargsLuaValue.invoke(LuaValue[] args, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg1, + LuaValue arg2, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invoke(LuaValue arg, + Varargs varargs) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaClosure.invoke(Varargs varargs) + +
+           
+ VarargsLuaValue.invoke(Varargs args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(LuaValue name, + Varargs args) + +
+          Call named method on this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+ VarargsLuaValue.invokemethod(java.lang.String name, + Varargs args) + +
+          Call named method on this with 1 argument, including metatag processing, + and retain all return values in a Varargs.
+static LuaTableLuaValue.listOf(LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied array values.
+ VarargsLuaThread.State.lua_resume(LuaThread new_thread, + Varargs args) + +
+           
+ VarargsLuaThread.State.lua_yield(Varargs args) + +
+           
+ VarargsLuaClosure.onInvoke(Varargs varargs) + +
+           
+ VarargsLuaValue.onInvoke(Varargs args) + +
+          Callback used during tail call processing to invoke the function once.
+static voidPrint.printStack(LuaValue[] stack, + int top, + Varargs varargs) + +
+           
+static voidPrint.printState(LuaClosure cl, + int pc, + LuaValue[] stack, + int top, + Varargs varargs) + +
+          Print the state of a LuaClosure that is being executed
+ voidLuaValue.rawsetlist(int key0, + Varargs values) + +
+          Set list values in a table without invoking metatag processing
+ VarargsLuaThread.resume(Varargs args) + +
+           
+static LuaTableLuaValue.tableOf(LuaValue[] namedValues, + LuaValue[] unnamedValues, + Varargs lastarg) + +
+          Construct a LuaTable initialized with supplied named values and sequential elements in an array part and as varargs.
+static LuaTableLuaValue.tableOf(Varargs varargs, + int firstarg) + +
+          Construct a LuaTable initialized with supplied array values.
+static VarargsLuaValue.tailcallOf(LuaValue func, + Varargs args) + +
+          Construct a TailcallVarargs around a function and arguments.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + int offset, + int length, + Varargs more) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue[] v, + Varargs r) + +
+          Construct a Varargs around an array of LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v1, + LuaValue v2, + Varargs v3) + +
+          Construct a Varargs around a set of 3 or more LuaValues.
+static VarargsLuaValue.varargsOf(LuaValue v, + Varargs r) + +
+          Construct a Varargs around a set of 2 or more LuaValues.
+ VarargsGlobals.yield(Varargs args) + +
+          Function which yields the current thread.
+  +

+ + + + + + + + + + + + + + + + + + + + +
Constructors in org.luaj.vm2 with parameters of type Varargs
LuaTable(LuaValue[] named, + LuaValue[] unnamed, + Varargs lastarg) + +
+          Construct table with named and unnamed parts.
LuaTable(Varargs varargs) + +
+          Construct table of unnamed elements.
LuaTable(Varargs varargs, + int firstarg) + +
+          Construct table of unnamed elements.
TailcallVarargs(LuaValue object, + LuaValue methodname, + Varargs args) + +
+           
TailcallVarargs(LuaValue f, + Varargs args) + +
+           
+  +

+ + + + + +
+Uses of Varargs in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of Varargs in org.luaj.vm2.lib
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+ classBit32Lib + +
+          Subclass of LibFunction that implements the Lua standard bit32 library.
+ classCoroutineLib + +
+          Subclass of LibFunction which implements the lua standard coroutine + library.
+ classDebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
+ classIoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
+protected  classIoLib.File + +
+           
+ classLibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
+ classMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+protected static classMathLib.BinaryOp + +
+           
+protected static classMathLib.UnaryOp + +
+           
+ classOneArgFunction + +
+          Abstract base class for Java function implementations that take one argument and + return one value.
+ classOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classPackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+ classPackageLib.searchpath + +
+           
+ classStringLib + +
+          Subclass of LibFunction which implements the lua standard string + library.
+ classTableLib + +
+          Subclass of LibFunction which implements the lua standard table + library.
+ classThreeArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classTwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classVarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+ classZeroArgFunction + +
+          Abstract base class for Java function implementations that take no arguments and + return one value.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib that return Varargs
+ VarargsIoLib._file_close(LuaValue file) + +
+           
+ VarargsIoLib._file_flush(LuaValue file) + +
+           
+ VarargsIoLib._file_lines(LuaValue file) + +
+           
+ VarargsIoLib._file_read(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._file_seek(LuaValue file, + java.lang.String whence, + int offset) + +
+           
+ VarargsIoLib._file_setvbuf(LuaValue file, + java.lang.String mode, + int size) + +
+           
+ VarargsIoLib._file_write(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._io_close(LuaValue file) + +
+           
+ VarargsIoLib._io_flush() + +
+           
+ VarargsIoLib._io_index(LuaValue v) + +
+           
+ VarargsIoLib._io_input(LuaValue file) + +
+           
+ VarargsIoLib._io_lines(java.lang.String filename) + +
+           
+ VarargsIoLib._io_open(java.lang.String filename, + java.lang.String mode) + +
+           
+ VarargsIoLib._io_output(LuaValue filename) + +
+           
+ VarargsIoLib._io_popen(java.lang.String prog, + java.lang.String mode) + +
+           
+ VarargsIoLib._io_read(Varargs args) + +
+           
+ VarargsIoLib._io_tmpfile() + +
+           
+ VarargsIoLib._io_type(LuaValue obj) + +
+           
+ VarargsIoLib._io_write(Varargs args) + +
+           
+ VarargsIoLib._lines_iter(LuaValue file) + +
+           
+protected  VarargsOsLib.execute(java.lang.String command) + +
+          This function is equivalent to the C function system.
+ VarargsLibFunction.invoke(Varargs args) + +
+           
+ VarargsOneArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsPackageLib.preload_searcher.invoke(Varargs args) + +
+           
+ VarargsPackageLib.lua_searcher.invoke(Varargs args) + +
+           
+ VarargsPackageLib.searchpath.invoke(Varargs args) + +
+           
+ VarargsPackageLib.java_searcher.invoke(Varargs args) + +
+           
+ VarargsThreeArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsTwoArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsVarArgFunction.invoke(Varargs args) + +
+          Subclass responsibility.
+ VarargsZeroArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsBaseLib.loadFile(java.lang.String filename, + java.lang.String mode, + LuaValue env) + +
+          Load from a named file, returning the chunk or nil,error of can't load
+ VarargsPackageLib.loadlib.loadlib(Varargs args) + +
+           
+ VarargsBaseLib.loadStream(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue env) + +
+           
+ VarargsVarArgFunction.onInvoke(Varargs args) + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type Varargs
+ VarargsIoLib._file_read(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._file_write(LuaValue file, + Varargs subargs) + +
+           
+ VarargsIoLib._io_read(Varargs args) + +
+           
+ VarargsIoLib._io_write(Varargs args) + +
+           
+ VarargsLibFunction.invoke(Varargs args) + +
+           
+ VarargsOneArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsPackageLib.preload_searcher.invoke(Varargs args) + +
+           
+ VarargsPackageLib.lua_searcher.invoke(Varargs args) + +
+           
+ VarargsPackageLib.searchpath.invoke(Varargs args) + +
+           
+ VarargsPackageLib.java_searcher.invoke(Varargs args) + +
+           
+ VarargsThreeArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsTwoArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsVarArgFunction.invoke(Varargs args) + +
+          Subclass responsibility.
+ VarargsZeroArgFunction.invoke(Varargs varargs) + +
+           
+ VarargsPackageLib.loadlib.loadlib(Varargs args) + +
+           
+ voidDebugLib.onCall(LuaClosure c, + Varargs varargs, + LuaValue[] stack) + +
+           
+ voidDebugLib.onInstruction(int pc, + Varargs v, + int top) + +
+           
+ VarargsVarArgFunction.onInvoke(Varargs args) + +
+           
+  +

+ + + + + +
+Uses of Varargs in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of Varargs in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of Varargs in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of Varargs in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classLuajavaLib + +
+          Subclass of LibFunction which implements the features of the luajava package.
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jse that return Varargs
+protected  VarargsJseOsLib.execute(java.lang.String command) + +
+           
+ VarargsLuajavaLib.invoke(Varargs args) + +
+           
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2.lib.jse with parameters of type Varargs
+ VarargsLuajavaLib.invoke(Varargs args) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.WeakSlot.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.WeakSlot.html new file mode 100644 index 000000000..5a06a58a9 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.WeakSlot.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.WeakTable.WeakSlot (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.WeakTable.WeakSlot

+
+ + + + + + + + + +
+Packages that use WeakTable.WeakSlot
org.luaj.vm2  
+  +

+ + + + + +
+Uses of WeakTable.WeakSlot in org.luaj.vm2
+  +

+ + + + + + + + + +
Methods in org.luaj.vm2 that return WeakTable.WeakSlot
+protected abstract  WeakTable.WeakSlotWeakTable.WeakSlot.copy(org.luaj.vm2.LuaTable.Slot next) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.html new file mode 100644 index 000000000..0ed6fef61 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/class-use/WeakTable.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.WeakTable (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.WeakTable

+
+No usage of org.luaj.vm2.WeakTable +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/LuaC.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/LuaC.html new file mode 100644 index 000000000..f76659136 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/LuaC.html @@ -0,0 +1,438 @@ + + + + + + +LuaC (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.compiler +
+Class LuaC

+
+java.lang.Object
+  extended by Constants
+      extended by org.luaj.vm2.compiler.LuaC
+
+
+
All Implemented Interfaces:
Globals.Compiler, Globals.Loader
+
+
+
+
public class LuaC
extends Constants
implements Globals.Compiler, Globals.Loader
+ + +

+Compiler for Lua. + +

+ Compiles lua source files into lua bytecode within a Prototype, + loads lua binary files directly into a Prototype, + and optionaly instantiates a LuaClosure around the result + using a user-supplied environment. + +

+ Implements the Globals.Compiler interface for loading + initialized chunks, which is an interface common to + lua bytecode compiling and java bytecode compiling. + +

+ The LuaC compiler is installed by default by both the + JsePlatform and JmePlatform classes, + so in the following example, the default LuaC compiler + will be used: +

 Globals globals = JsePlatform.standardGlobals();
+ globals.load(new StringReader("print 'hello'"), "main.lua" ).call();
+  
+ + To load the LuaC compiler manually, use the install method: +
 LuaC.install(globals);
+  
+

+ +

+

+
See Also:
install(Globals), +Globals.compiler, +Globals.loader, +LuaJC, +JsePlatform, +JmePlatform, +BaseLib, +LuaValue, +Prototype
+
+ +

+ + + + + + + + + + + +
+Field Summary
+static LuaCinstance + +
+          A sharable instance of the LuaC compiler.
+  + + + + + + + + + + + +
+Constructor Summary
+protected LuaC() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ Prototypecompile(java.io.InputStream stream, + java.lang.String chunkname) + +
+          Compile lua source into a Prototype.
+static voidinstall(Globals globals) + +
+          Install the compiler so that LoadState will first + try to use it when handed bytes that are + not already a compiled lua chunk.
+ LuaValueload(java.io.InputStream stream, + java.lang.String chunkname, + Globals globals) + +
+          Deprecated. Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly.
+ LuaFunctionload(Prototype prototype, + java.lang.String chunkname, + LuaValue env) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+instance

+
+public static final LuaC instance
+
+
A sharable instance of the LuaC compiler. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaC

+
+protected LuaC()
+
+
+ + + + + + + + +
+Method Detail
+ +

+install

+
+public static void install(Globals globals)
+
+
Install the compiler so that LoadState will first + try to use it when handed bytes that are + not already a compiled lua chunk. +

+

+
+
+
+
Parameters:
globals - the Globals into which this is to be installed.
+
+
+
+ +

+compile

+
+public Prototype compile(java.io.InputStream stream,
+                         java.lang.String chunkname)
+                  throws java.io.IOException
+
+
Compile lua source into a Prototype. +

+

+
Specified by:
compile in interface Globals.Compiler
+
+
+
Parameters:
stream - InputStream representing the text source conforming to lua source syntax.
chunkname - String name of the chunk to use. +
Returns:
Prototype representing the lua chunk for this source. +
Throws: +
java.io.IOException
+
+
+
+ +

+load

+
+public LuaFunction load(Prototype prototype,
+                        java.lang.String chunkname,
+                        LuaValue env)
+                 throws java.io.IOException
+
+
Description copied from interface: Globals.Loader
+
Convert the prototype into a LuaFunction with the supplied environment. +

+

+
Specified by:
load in interface Globals.Loader
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+load

+
+public LuaValue load(java.io.InputStream stream,
+                     java.lang.String chunkname,
+                     Globals globals)
+              throws java.io.IOException
+
+
Deprecated. Use Globals.load(InputString, String, String) instead, + or LuaC.compile(InputStream, String) and construct LuaClosure directly. +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/class-use/LuaC.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/class-use/LuaC.html new file mode 100644 index 000000000..f0d852740 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/class-use/LuaC.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.compiler.LuaC (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.compiler.LuaC

+
+ + + + + + + + + +
+Packages that use LuaC
org.luaj.vm2.compiler  
+  +

+ + + + + +
+Uses of LuaC in org.luaj.vm2.compiler
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.compiler declared as LuaC
+static LuaCLuaC.instance + +
+          A sharable instance of the LuaC compiler.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-frame.html new file mode 100644 index 000000000..5eee894b5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.luaj.vm2.compiler (Luaj API) + + + + + + + + + + + +org.luaj.vm2.compiler + + + + +
+Classes  + +
+LuaC
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-summary.html new file mode 100644 index 000000000..b8834a41f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-summary.html @@ -0,0 +1,157 @@ + + + + + + +org.luaj.vm2.compiler (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.compiler +

+ + + + + + + + + +
+Class Summary
LuaCCompiler for Lua.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-tree.html new file mode 100644 index 000000000..ed655d2fd --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-tree.html @@ -0,0 +1,156 @@ + + + + + + +org.luaj.vm2.compiler Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.compiler +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-use.html new file mode 100644 index 000000000..49ca5ff70 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/compiler/package-use.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Package org.luaj.vm2.compiler (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.compiler

+
+ + + + + + + + + +
+Packages that use org.luaj.vm2.compiler
org.luaj.vm2.compiler  
+  +

+ + + + + + + + +
+Classes in org.luaj.vm2.compiler used by org.luaj.vm2.compiler
LuaC + +
+          Compiler for Lua.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/BaseLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/BaseLib.html new file mode 100644 index 000000000..4d117535e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/BaseLib.html @@ -0,0 +1,488 @@ + + + + + + +BaseLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class BaseLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.BaseLib
+
+
+
All Implemented Interfaces:
ResourceFinder
+
+
+
Direct Known Subclasses:
JseBaseLib
+
+
+
+
public class BaseLib
extends TwoArgFunction
implements ResourceFinder
+ + +

+Subclass of LibFunction which implements the lua basic library functions. +

+ This contains all library functions listed as "basic functions" in the lua documentation for JME. + The functions dofile and loadfile use the + Globals.finder instance to find resource files. + Since JME has no file system by default, BaseLib implements + ResourceFinder using Class.getResource(String), + which is the closest equivalent on JME. + The default loader chain in PackageLib will use these as well. +

+ To use basic library functions that include a ResourceFinder based on + directory lookup, use JseBaseLib instead. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or + JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ globals.get("print").call(LuaValue.valueOf("hello, world"));
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.get("print").call(LuaValue.valueOf("hello, world"));
+  
+ Doing so will ensure the library is properly initialized + and loaded into the globals table. +

+ This is a direct port of the corresponding library in C. +

+ +

+

+
See Also:
JseBaseLib, +ResourceFinder, +Globals.finder, +LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Base Lib Reference
+
+ +

+ + + + + + + +
+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
BaseLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding base functions + to the supplied environment, and returning it as the return value.
+ java.io.InputStreamfindResource(java.lang.String filename) + +
+          ResourceFinder implementation + + Tries to open the file as a resource, which can work for JSE and JME.
+ VarargsloadFile(java.lang.String filename, + java.lang.String mode, + LuaValue env) + +
+          Load from a named file, returning the chunk or nil,error of can't load
+ VarargsloadStream(java.io.InputStream is, + java.lang.String chunkname, + java.lang.String mode, + LuaValue env) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+BaseLib

+
+public BaseLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by adding base functions + to the supplied environment, and returning it as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+
+ +

+findResource

+
+public java.io.InputStream findResource(java.lang.String filename)
+
+
ResourceFinder implementation + + Tries to open the file as a resource, which can work for JSE and JME. +

+

+
Specified by:
findResource in interface ResourceFinder
+
+
+ +
Returns:
InputStream, or null if not found.
See Also:
BaseLib, +JseBaseLib
+
+
+
+ +

+loadFile

+
+public Varargs loadFile(java.lang.String filename,
+                        java.lang.String mode,
+                        LuaValue env)
+
+
Load from a named file, returning the chunk or nil,error of can't load +

+

+
+
+
+
Parameters:
env -
mode - +
Returns:
Varargs containing chunk, or NIL,error-text on error
+
+
+
+ +

+loadStream

+
+public Varargs loadStream(java.io.InputStream is,
+                          java.lang.String chunkname,
+                          java.lang.String mode,
+                          LuaValue env)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/Bit32Lib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/Bit32Lib.html new file mode 100644 index 000000000..b9c60320f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/Bit32Lib.html @@ -0,0 +1,381 @@ + + + + + + +Bit32Lib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class Bit32Lib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.Bit32Lib
+
+
+
+
public class Bit32Lib
extends TwoArgFunction
+ + +

+Subclass of LibFunction that implements the Lua standard bit32 library. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("bit32").get("bnot").call( LuaValue.valueOf(2) ) );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new Bit32Lib());
+ System.out.println( globals.get("bit32").get("bnot").call( LuaValue.valueOf(2) ) );
+  
+

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Bitwise Operation Lib Reference
+
+ +

+ + + + + + + +
+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
Bit32Lib() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+Bit32Lib

+
+public Bit32Lib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/CoroutineLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/CoroutineLib.html new file mode 100644 index 000000000..d28417b3b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/CoroutineLib.html @@ -0,0 +1,388 @@ + + + + + + +CoroutineLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class CoroutineLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.CoroutineLib
+
+
+
+
public class CoroutineLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard coroutine + library. +

+ The coroutine library in luaj has the same behavior as the + coroutine library in C, but is implemented using Java Threads to maintain + the call state between invocations. Therefore it can be yielded from anywhere, + similar to the "Coco" yield-from-anywhere patch available for C-based lua. + However, coroutines that are yielded but never resumed to complete their execution + may not be collected by the garbage collector. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("coroutine").get("running").call() );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new CoroutineLib());
+ System.out.println( globals.get("coroutine").get("running").call() );
+  
+

+

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Coroutine Lib Reference
+
+ +

+ + + + + + + +
+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
CoroutineLib() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+CoroutineLib

+
+public CoroutineLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.CallStack.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.CallStack.html new file mode 100644 index 000000000..9dacdf88a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.CallStack.html @@ -0,0 +1,194 @@ + + + + + + +DebugLib.CallStack (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class DebugLib.CallStack

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.DebugLib.CallStack
+
+
+
Enclosing class:
DebugLib
+
+
+
+
public static class DebugLib.CallStack
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.html new file mode 100644 index 000000000..e878a35ee --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/DebugLib.html @@ -0,0 +1,580 @@ + + + + + + +DebugLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class DebugLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.DebugLib
+
+
+
+
public class DebugLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard debug + library. +

+ The debug library in luaj tries to emulate the behavior of the corresponding C-based lua library. + To do this, it must maintain a separate stack of calls to LuaClosure and LibFunction + instances. + Especially when lua-to-java bytecode compiling is being used + via a Globals.Compiler such as LuaJC, + this cannot be done in all cases. +

+ Typically, this library is included as part of a call to either + JsePlatform.debugGlobals() or + JmePlatform.debugGlobals() +

 Globals globals = JsePlatform.debugGlobals();
+ System.out.println( globals.get("debug").get("traceback").call() );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new DebugLib());
+ System.out.println( globals.get("debug").get("traceback").call() );
+  
+

+ This library exposes the entire state of lua code, and provides method to see and modify + all underlying lua values within a Java VM so should not be exposed to client code + in a shared server environment. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Debug Lib Reference
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classDebugLib.CallStack + +
+           
+ + + + + + + + + + + + + + +
+Field Summary
+static booleanCALLS + +
+           
+static booleanTRACE + +
+           
+ + + + + + + +
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, 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
DebugLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+static org.luaj.vm2.lib.DebugLib.NameWhatgetobjname(Prototype p, + int lastpc, + int reg) + +
+           
+ voidonCall(LuaClosure c, + Varargs varargs, + LuaValue[] stack) + +
+           
+ voidonCall(LuaFunction f) + +
+           
+ voidonInstruction(int pc, + Varargs v, + int top) + +
+           
+ voidonReturn() + +
+           
+ java.lang.Stringtraceback(int level) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+CALLS

+
+public static boolean CALLS
+
+
+
+
+
+ +

+TRACE

+
+public static boolean TRACE
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+DebugLib

+
+public DebugLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+
+ +

+onCall

+
+public void onCall(LuaFunction f)
+
+
+
+
+
+
+ +

+onCall

+
+public void onCall(LuaClosure c,
+                   Varargs varargs,
+                   LuaValue[] stack)
+
+
+
+
+
+
+ +

+onInstruction

+
+public void onInstruction(int pc,
+                          Varargs v,
+                          int top)
+
+
+
+
+
+
+ +

+onReturn

+
+public void onReturn()
+
+
+
+
+
+
+ +

+traceback

+
+public java.lang.String traceback(int level)
+
+
+
+
+
+
+ +

+getobjname

+
+public static org.luaj.vm2.lib.DebugLib.NameWhat getobjname(Prototype p,
+                                                            int lastpc,
+                                                            int reg)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.File.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.File.html new file mode 100644 index 000000000..2714cfd9d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.File.html @@ -0,0 +1,643 @@ + + + + + + +IoLib.File (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class IoLib.File

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.lib.IoLib.File
+
+
+
Enclosing class:
IoLib
+
+
+
+
protected abstract class IoLib.File
extends LuaValue
+ + +

+


+ +

+ + + + + + + +
+Field Summary
+ + + + + + + +
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
+protected IoLib.File() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+abstract  voidclose() + +
+           
+abstract  voidflush() + +
+           
+ LuaValueget(LuaValue key) + +
+          Get a value in a table including metatag processing using LuaValue.INDEX.
+abstract  booleanisclosed() + +
+           
+abstract  booleanisstdfile() + +
+           
+abstract  intpeek() + +
+           
+abstract  intread() + +
+           
+abstract  intread(byte[] bytes, + int offset, + int length) + +
+           
+abstract  intremaining() + +
+           
+abstract  intseek(java.lang.String option, + int bytecount) + +
+           
+abstract  voidsetvbuf(java.lang.String mode, + int size) + +
+           
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ inttype() + +
+          Get the enumeration value for the type of this value.
+ java.lang.Stringtypename() + +
+          Get the String name of the type of this value.
+abstract  voidwrite(LuaString string) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, call, call, call, call, callmt, checkboolean, checkclosure, checkdouble, checkfunction, 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, getmetatable, 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, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isfunction, 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, optfunction, 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, strvalue, 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
+ +

+IoLib.File

+
+protected IoLib.File()
+
+
+ + + + + + + + +
+Method Detail
+ +

+write

+
+public abstract void write(LuaString string)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+flush

+
+public abstract void flush()
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isstdfile

+
+public abstract boolean isstdfile()
+
+
+
+
+
+
+ +

+close

+
+public abstract void close()
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isclosed

+
+public abstract boolean isclosed()
+
+
+
+
+
+
+ +

+seek

+
+public abstract int seek(java.lang.String option,
+                         int bytecount)
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+setvbuf

+
+public abstract void setvbuf(java.lang.String mode,
+                             int size)
+
+
+
+
+
+
+ +

+remaining

+
+public abstract int remaining()
+                       throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+peek

+
+public abstract int peek()
+                  throws java.io.IOException,
+                         java.io.EOFException
+
+
+ +
Throws: +
java.io.IOException +
java.io.EOFException
+
+
+
+ +

+read

+
+public abstract int read()
+                  throws java.io.IOException,
+                         java.io.EOFException
+
+
+ +
Throws: +
java.io.IOException +
java.io.EOFException
+
+
+
+ +

+read

+
+public abstract int read(byte[] bytes,
+                         int offset,
+                         int length)
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+get

+
+public LuaValue get(LuaValue key)
+
+
Description copied from class: LuaValue
+
Get a value in a table including metatag processing using LuaValue.INDEX. +

+

+
Overrides:
get in class LuaValue
+
+
+
Parameters:
key - the key to look up, must not be LuaValue.NIL or null +
Returns:
LuaValue for that key, or LuaValue.NIL if not found and no metatag
See Also:
LuaValue.get(int), +LuaValue.get(String), +LuaValue.rawget(LuaValue)
+
+
+
+ +

+type

+
+public int type()
+
+
Description copied from class: LuaValue
+
Get the enumeration value for the type of this value. +

+

+
Specified by:
type in class LuaValue
+
+
+ +
Returns:
value for this type, one of + LuaValue.TNIL, + LuaValue.TBOOLEAN, + LuaValue.TNUMBER, + LuaValue.TSTRING, + LuaValue.TTABLE, + LuaValue.TFUNCTION, + LuaValue.TUSERDATA, + LuaValue.TTHREAD
See Also:
LuaValue.typename()
+
+
+
+ +

+typename

+
+public java.lang.String typename()
+
+
Description copied from class: LuaValue
+
Get the String name of the type of this value. +

+

+

+
Specified by:
typename in class LuaValue
+
+
+ +
Returns:
name from type name list LuaValue.TYPE_NAMES + corresponding to the type of this value: + "nil", "boolean", "number", "string", + "table", "function", "userdata", "thread"
See Also:
LuaValue.type()
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaValue
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.html new file mode 100644 index 000000000..0e3671d46 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/IoLib.html @@ -0,0 +1,1277 @@ + + + + + + +IoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class IoLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.IoLib
+
+
+
Direct Known Subclasses:
JmeIoLib, JseIoLib
+
+
+
+
public abstract class IoLib
extends TwoArgFunction
+ + +

+Abstract base class extending LibFunction which implements the + core of the lua standard io library. +

+ It contains the implementation of the io library support that is common to + the JSE and JME platforms. + In practice on of the concrete IOLib subclasses is chosen: + JseIoLib for the JSE platform, and + JmeIoLib for the JME platform. +

+ The JSE implementation conforms almost completely to the C-based lua library, + while the JME implementation follows closely except in the area of random-access files, + which are difficult to support properly on JME. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+ In this example the platform-specific JseIoLib library will be loaded, which will include + the base functionality provided by this class, whereas the JsePlatform would load the + JseIoLib. +

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new OsLib());
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +JseIoLib, +JmeIoLib, +http://www.lua.org/manual/5.1/manual.html#5.7
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+protected  classIoLib.File + +
+           
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.String[]FILE_NAMES + +
+           
+protected static intFTYPE_NAMED + +
+          Enumerated value representing a file type for a named file
+protected static intFTYPE_STDERR + +
+          Enumerated value representing stderr
+protected static intFTYPE_STDIN + +
+          Enumerated value representing stdin
+protected static intFTYPE_STDOUT + +
+          Enumerated value representing stdout
+protected  Globalsglobals + +
+           
+static java.lang.String[]IO_NAMES + +
+           
+ + + + + + + +
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
IoLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ Varargs_file_close(LuaValue file) + +
+           
+ Varargs_file_flush(LuaValue file) + +
+           
+ Varargs_file_lines(LuaValue file) + +
+           
+ Varargs_file_read(LuaValue file, + Varargs subargs) + +
+           
+ Varargs_file_seek(LuaValue file, + java.lang.String whence, + int offset) + +
+           
+ Varargs_file_setvbuf(LuaValue file, + java.lang.String mode, + int size) + +
+           
+ Varargs_file_write(LuaValue file, + Varargs subargs) + +
+           
+ Varargs_io_close(LuaValue file) + +
+           
+ Varargs_io_flush() + +
+           
+ Varargs_io_index(LuaValue v) + +
+           
+ Varargs_io_input(LuaValue file) + +
+           
+ Varargs_io_lines(java.lang.String filename) + +
+           
+ Varargs_io_open(java.lang.String filename, + java.lang.String mode) + +
+           
+ Varargs_io_output(LuaValue filename) + +
+           
+ Varargs_io_popen(java.lang.String prog, + java.lang.String mode) + +
+           
+ Varargs_io_read(Varargs args) + +
+           
+ Varargs_io_tmpfile() + +
+           
+ Varargs_io_type(LuaValue obj) + +
+           
+ Varargs_io_write(Varargs args) + +
+           
+ Varargs_lines_iter(LuaValue file) + +
+           
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+static LuaValuefreadall(IoLib.File f) + +
+           
+static LuaValuefreadbytes(IoLib.File f, + int count) + +
+           
+static LuaValuefreadline(IoLib.File f) + +
+           
+static LuaValuefreadnumber(IoLib.File f) + +
+           
+static LuaValuefreaduntil(IoLib.File f, + boolean lineonly) + +
+           
+protected abstract  IoLib.FileopenFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+          Open a file in a particular mode.
+protected abstract  IoLib.FileopenProgram(java.lang.String prog, + java.lang.String mode) + +
+          Start a new process and return a file for input or output
+protected abstract  IoLib.FiletmpFile() + +
+          Open a temporary file.
+protected abstract  IoLib.FilewrapStderr() + +
+          Wrap the standard error output.
+protected abstract  IoLib.FilewrapStdin() + +
+          Wrap the standard input.
+protected abstract  IoLib.FilewrapStdout() + +
+          Wrap the standard output.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+FTYPE_STDIN

+
+protected static final int FTYPE_STDIN
+
+
Enumerated value representing stdin +

+

+
See Also:
Constant Field Values
+
+
+ +

+FTYPE_STDOUT

+
+protected static final int FTYPE_STDOUT
+
+
Enumerated value representing stdout +

+

+
See Also:
Constant Field Values
+
+
+ +

+FTYPE_STDERR

+
+protected static final int FTYPE_STDERR
+
+
Enumerated value representing stderr +

+

+
See Also:
Constant Field Values
+
+
+ +

+FTYPE_NAMED

+
+protected static final int FTYPE_NAMED
+
+
Enumerated value representing a file type for a named file +

+

+
See Also:
Constant Field Values
+
+
+ +

+IO_NAMES

+
+public static final java.lang.String[] IO_NAMES
+
+
+
+
+
+ +

+FILE_NAMES

+
+public static final java.lang.String[] FILE_NAMES
+
+
+
+
+
+ +

+globals

+
+protected Globals globals
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+IoLib

+
+public IoLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+wrapStdin

+
+protected abstract IoLib.File wrapStdin()
+                                 throws java.io.IOException
+
+
Wrap the standard input. +

+

+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStdout

+
+protected abstract IoLib.File wrapStdout()
+                                  throws java.io.IOException
+
+
Wrap the standard output. +

+

+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStderr

+
+protected abstract IoLib.File wrapStderr()
+                                  throws java.io.IOException
+
+
Wrap the standard error output. +

+

+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+openFile

+
+protected abstract IoLib.File openFile(java.lang.String filename,
+                                       boolean readMode,
+                                       boolean appendMode,
+                                       boolean updateMode,
+                                       boolean binaryMode)
+                                throws java.io.IOException
+
+
Open a file in a particular mode. +

+

+
Parameters:
filename -
readMode - true if opening in read mode
appendMode - true if opening in append mode
updateMode - true if opening in update mode
binaryMode - true if opening in binary mode +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+
+ +

+tmpFile

+
+protected abstract IoLib.File tmpFile()
+                               throws java.io.IOException
+
+
Open a temporary file. +

+

+ +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+
+ +

+openProgram

+
+protected abstract IoLib.File openProgram(java.lang.String prog,
+                                          java.lang.String mode)
+                                   throws java.io.IOException
+
+
Start a new process and return a file for input or output +

+

+
Parameters:
prog - the program to execute
mode - "r" to read, "w" to write +
Returns:
File to read to or write from +
Throws: +
java.io.IOException - if an i/o exception occurs
+
+
+
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
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. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - First argument to supply to the called function
env - 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)
+
+
+
+ +

+_io_flush

+
+public Varargs _io_flush()
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_tmpfile

+
+public Varargs _io_tmpfile()
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_close

+
+public Varargs _io_close(LuaValue file)
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_input

+
+public Varargs _io_input(LuaValue file)
+
+
+
+
+
+
+ +

+_io_output

+
+public Varargs _io_output(LuaValue filename)
+
+
+
+
+
+
+ +

+_io_type

+
+public Varargs _io_type(LuaValue obj)
+
+
+
+
+
+
+ +

+_io_popen

+
+public Varargs _io_popen(java.lang.String prog,
+                         java.lang.String mode)
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_open

+
+public Varargs _io_open(java.lang.String filename,
+                        java.lang.String mode)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_lines

+
+public Varargs _io_lines(java.lang.String filename)
+
+
+
+
+
+
+ +

+_io_read

+
+public Varargs _io_read(Varargs args)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_write

+
+public Varargs _io_write(Varargs args)
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_file_close

+
+public Varargs _file_close(LuaValue file)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_file_flush

+
+public Varargs _file_flush(LuaValue file)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_file_setvbuf

+
+public Varargs _file_setvbuf(LuaValue file,
+                             java.lang.String mode,
+                             int size)
+
+
+
+
+
+
+ +

+_file_lines

+
+public Varargs _file_lines(LuaValue file)
+
+
+
+
+
+
+ +

+_file_read

+
+public Varargs _file_read(LuaValue file,
+                          Varargs subargs)
+                   throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_file_seek

+
+public Varargs _file_seek(LuaValue file,
+                          java.lang.String whence,
+                          int offset)
+                   throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_file_write

+
+public Varargs _file_write(LuaValue file,
+                           Varargs subargs)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+_io_index

+
+public Varargs _io_index(LuaValue v)
+
+
+
+
+
+
+ +

+_lines_iter

+
+public Varargs _lines_iter(LuaValue file)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+freadbytes

+
+public static LuaValue freadbytes(IoLib.File f,
+                                  int count)
+                           throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+freaduntil

+
+public static LuaValue freaduntil(IoLib.File f,
+                                  boolean lineonly)
+                           throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+freadline

+
+public static LuaValue freadline(IoLib.File f)
+                          throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+freadall

+
+public static LuaValue freadall(IoLib.File f)
+                         throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+freadnumber

+
+public static LuaValue freadnumber(IoLib.File f)
+                            throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/LibFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/LibFunction.html new file mode 100644 index 000000000..473f809c7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/LibFunction.html @@ -0,0 +1,832 @@ + + + + + + +LibFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class LibFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+
+
+
Direct Known Subclasses:
OneArgFunction, ThreeArgFunction, TwoArgFunction, VarArgFunction, ZeroArgFunction
+
+
+
+
public abstract class LibFunction
extends LuaFunction
+ + +

+Subclass of LuaFunction common to Java functions exposed to lua. +

+ To provide for common implementations in JME and JSE, + library functions are typically grouped on one or more library classes + and an opcode per library function is defined and used to key the switch + to the correct function within the library. +

+ Since lua functions can be called with too few or too many arguments, + and there are overloaded LuaValue.call() functions with varying + number of arguments, a Java function exposed in lua needs to handle the + argument fixup when a function is called with a number of arguments + differs from that expected. +

+ To simplify the creation of library functions, + there are 5 direct subclasses to handle common cases based on number of + argument values and number of return return values. +

+

+ To be a Java library that can be loaded via require, it should have + a public constructor that returns a LuaValue that, when executed, + initializes the library. +

+ For example, the following code will implement a library called "hyperbolic" + with two functions, "sinh", and "cosh": +

 import org.luaj.vm2.LuaValue;
+ import org.luaj.vm2.lib.*;
+ 
+ public class hyperbolic extends TwoArgFunction {
+
+	public hyperbolic() {}
+
+	public LuaValue call(LuaValue modname, LuaValue env) {
+		LuaValue library = tableOf();
+		library.set( "sinh", new sinh() );
+		library.set( "cosh", new cosh() );
+		env.set( "hyperbolic", library );
+		return library;
+	}
+
+	static class sinh extends OneArgFunction {
+		public LuaValue call(LuaValue x) {
+			return LuaValue.valueOf(Math.sinh(x.checkdouble()));
+		}
+	}
+	
+	static class cosh extends OneArgFunction {
+		public LuaValue call(LuaValue x) {
+			return LuaValue.valueOf(Math.cosh(x.checkdouble()));
+		}
+	}
+}
+
+ The default constructor is used to instantiate the library + in response to require 'hyperbolic' statement, + provided it is on Java"s class path. + This instance is then invoked with 2 arguments: the name supplied to require(), + and the environment for this function. The library may ignore these, or use + them to leave side effects in the global environment, for example. + In the previous example, two functions are created, 'sinh', and 'cosh', and placed + into a global table called 'hyperbolic' using the supplied 'env' argument. +

+ To test it, a script such as this can be used: +

 local t = require('hyperbolic')
+ print( 't', t )
+ print( 'hyperbolic', hyperbolic )
+ for k,v in pairs(t) do
+ 	print( 'k,v', k,v )
+ end
+ print( 'sinh(.5)', hyperbolic.sinh(.5) )
+ print( 'cosh(.5)', hyperbolic.cosh(.5) )
+ 
+

+ It should produce something like: +

 t	table: 3dbbd23f
+ hyperbolic	table: 3dbbd23f
+ k,v	cosh	function: 3dbbd128
+ k,v	sinh	function: 3dbbd242
+ sinh(.5)	0.5210953
+ cosh(.5)	1.127626
+ 
+

+ See the source code in any of the library functions + such as BaseLib or TableLib for other examples. +

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Field Summary
+protected  java.lang.Stringname + +
+          The common name for this function, useful for debugging.
+protected  intopcode + +
+          User-defined opcode to differentiate between instances of the library function class.
+ + + + + + + +
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
+protected LibFunction() + +
+          Default constructor for use by subclasses
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidbind(LuaValue env, + java.lang.Class factory, + java.lang.String[] names) + +
+          Bind a set of library functions.
+protected  voidbind(LuaValue env, + java.lang.Class factory, + java.lang.String[] names, + int firstopcode) + +
+          Bind a set of library functions, with an offset
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue a) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue a, + LuaValue b) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue a, + LuaValue b, + LuaValue c) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue a, + LuaValue b, + LuaValue c, + LuaValue d) + +
+           
+ Varargsinvoke(Varargs args) + +
+          Call this with variable arguments, including metatag processing, + and retain all return values in a Varargs.
+protected static LuaValue[]newupe() + +
+          Java code generation utility to allocate storage for upvalue, leave it empty
+protected static LuaValue[]newupl(LuaValue v) + +
+          Java code generation utility to allocate storage for upvalue, initialize with value
+protected static LuaValue[]newupn() + +
+          Java code generation utility to allocate storage for upvalue, initialize with nil
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+opcode

+
+protected int opcode
+
+
User-defined opcode to differentiate between instances of the library function class. +

+ Subclass will typicall switch on this value to provide the specific behavior for each function. +

+

+
+
+
+ +

+name

+
+protected java.lang.String name
+
+
The common name for this function, useful for debugging. +

+ Binding functions initialize this to the name to which it is bound. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LibFunction

+
+protected LibFunction()
+
+
Default constructor for use by subclasses +

+

+ + + + + + + + +
+Method Detail
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LuaFunction
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+bind

+
+protected void bind(LuaValue env,
+                    java.lang.Class factory,
+                    java.lang.String[] names)
+
+
Bind a set of library functions. +

+ An array of names is provided, and the first name is bound + with opcode = 0, second with 1, etc. +

+

+
Parameters:
env - The environment to apply to each bound function
factory - the Class to instantiate for each bound function
names - array of String names, one for each function.
See Also:
bind(LuaValue, Class, String[], int)
+
+
+
+ +

+bind

+
+protected void bind(LuaValue env,
+                    java.lang.Class factory,
+                    java.lang.String[] names,
+                    int firstopcode)
+
+
Bind a set of library functions, with an offset +

+ An array of names is provided, and the first name is bound + with opcode = firstopcode, second with firstopcode+1, etc. +

+

+
Parameters:
env - The environment to apply to each bound function
factory - the Class to instantiate for each bound function
names - array of String names, one for each function.
firstopcode - the first opcode to use
See Also:
bind(LuaValue, Class, String[])
+
+
+
+ +

+newupe

+
+protected static LuaValue[] newupe()
+
+
Java code generation utility to allocate storage for upvalue, leave it empty +

+

+
+
+
+
+ +

+newupn

+
+protected static LuaValue[] newupn()
+
+
Java code generation utility to allocate storage for upvalue, initialize with nil +

+

+
+
+
+
+ +

+newupl

+
+protected static LuaValue[] newupl(LuaValue v)
+
+
Java code generation utility to allocate storage for upvalue, initialize with value +

+

+
+
+
+
+ +

+call

+
+public 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 LuaValue
+
+
+ +
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 a)
+
+
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 LuaValue
+
+
+
Parameters:
a - 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 a,
+                     LuaValue b)
+
+
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 LuaValue
+
+
+
Parameters:
a - First argument to supply to the called function
b - 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 a,
+                     LuaValue b,
+                     LuaValue c)
+
+
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 LuaValue
+
+
+
Parameters:
a - First argument to supply to the called function
b - Second argument to supply to the called function
c - 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)
+
+
+
+ +

+call

+
+public LuaValue call(LuaValue a,
+                     LuaValue b,
+                     LuaValue c,
+                     LuaValue d)
+
+
+
+
+
+
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
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 LuaValue
+
+
+
Parameters:
args - 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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.BinaryOp.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.BinaryOp.html new file mode 100644 index 000000000..b7e9f3cc6 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.BinaryOp.html @@ -0,0 +1,389 @@ + + + + + + +MathLib.BinaryOp (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class MathLib.BinaryOp

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.MathLib.BinaryOp
+
+
+
Enclosing class:
MathLib
+
+
+
+
protected abstract static class MathLib.BinaryOp
extends TwoArgFunction
+ + +

+


+ +

+ + + + + + + +
+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
+protected MathLib.BinaryOp() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  doublecall(double x, + double y) + +
+           
+ LuaValuecall(LuaValue x, + LuaValue y) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+MathLib.BinaryOp

+
+protected MathLib.BinaryOp()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue x,
+                     LuaValue y)
+
+
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. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
x - First argument to supply to the called function
y - 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

+
+protected abstract double call(double x,
+                               double y)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.UnaryOp.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.UnaryOp.html new file mode 100644 index 000000000..1f229c28c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.UnaryOp.html @@ -0,0 +1,385 @@ + + + + + + +MathLib.UnaryOp (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class MathLib.UnaryOp

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.OneArgFunction
+                      extended by org.luaj.vm2.lib.MathLib.UnaryOp
+
+
+
Enclosing class:
MathLib
+
+
+
+
protected abstract static class MathLib.UnaryOp
extends OneArgFunction
+ + +

+


+ +

+ + + + + + + +
+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
+protected MathLib.UnaryOp() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  doublecall(double d) + +
+           
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.OneArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+MathLib.UnaryOp

+
+protected MathLib.UnaryOp()
+
+
+ + + + + + + + +
+Method Detail
+ +

+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. +

+

+
Specified by:
call in class OneArgFunction
+
+
+
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

+
+protected abstract double call(double d)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.html new file mode 100644 index 000000000..b8f185b5d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/MathLib.html @@ -0,0 +1,562 @@ + + + + + + +MathLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class MathLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.MathLib
+
+
+
Direct Known Subclasses:
JseMathLib
+
+
+
+
public class MathLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard math + library. +

+ It contains only the math library support that is possible on JME. + For a more complete implementation based on math functions specific to JSE + use JseMathLib. + In Particular the following math functions are not implemented by this library: +

    +
  • acos
  • +
  • asin
  • +
  • atan
  • +
  • cosh
  • +
  • log
  • +
  • sinh
  • +
  • tanh
  • +
  • atan2
  • +
+

+ The implementations of exp() and pow() are constructed by + hand for JME, so will be slower and less accurate than when executed on the JSE platform. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or + JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
+  
+ When using JsePlatform as in this example, + the subclass JseMathLib will + be included, which also includes this base functionality. +

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new MathLib());
+ System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
+  
+ Doing so will ensure the library is properly initialized + and loaded into the globals table. +

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +JseMathLib, +Lua 5.2 Math Lib Reference
+
+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+protected static classMathLib.BinaryOp + +
+           
+protected static classMathLib.UnaryOp + +
+           
+ + + + + + + + + + +
+Field Summary
+static MathLibMATHLIB + +
+          Pointer to the latest MathLib instance, used only to dispatch + math.exp to tha correct platform math library.
+ + + + + + + +
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
MathLib() + +
+          Construct a MathLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + call(LuaValue, LuaValue).
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+static doubledpow_d(double a, + double b) + +
+           
+protected static doubledpow_default(double a, + double b) + +
+          Default JME version computes using longhand heuristics.
+ doubledpow_lib(double a, + double b) + +
+          Hook to override default dpow behavior with faster implementation.
+static LuaValuedpow(double a, + double b) + +
+          compute power using installed math library, or default if there is no math library installed
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+MATHLIB

+
+public static MathLib MATHLIB
+
+
Pointer to the latest MathLib instance, used only to dispatch + math.exp to tha correct platform math library. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+MathLib

+
+public MathLib()
+
+
Construct a MathLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + call(LuaValue, LuaValue). +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance. +
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)
+
+
+
+ +

+dpow

+
+public static LuaValue dpow(double a,
+                            double b)
+
+
compute power using installed math library, or default if there is no math library installed +

+

+
+
+
+
+ +

+dpow_d

+
+public static double dpow_d(double a,
+                            double b)
+
+
+
+
+
+
+ +

+dpow_lib

+
+public double dpow_lib(double a,
+                       double b)
+
+
Hook to override default dpow behavior with faster implementation. +

+

+
+
+
+
+ +

+dpow_default

+
+protected static double dpow_default(double a,
+                                     double b)
+
+
Default JME version computes using longhand heuristics. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OneArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OneArgFunction.html new file mode 100644 index 000000000..eceba971e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OneArgFunction.html @@ -0,0 +1,553 @@ + + + + + + +OneArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class OneArgFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.OneArgFunction
+
+
+
Direct Known Subclasses:
MathLib.UnaryOp, PackageLib.require
+
+
+
+
public abstract class OneArgFunction
extends LibFunction
+ + +

+Abstract base class for Java function implementations that take one argument and + return one value. +

+ Subclasses need only implement LuaValue.call(LuaValue) to complete this class, + simplifying development. + All other uses of call(), invoke(Varargs),etc, + are routed through this method by this class, + dropping or extending arguments with nil values as required. +

+ If more than one argument are required, or no arguments are required, + or variable argument or variable return values, + then use one of the related function + ZeroArgFunction, TwoArgFunction, ThreeArgFunction, or VarArgFunction. +

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

+ +

+

+
See Also:
call(LuaValue), +LibFunction, +ZeroArgFunction, +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
OneArgFunction() + +
+          Default constructor
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+abstract  LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ Varargsinvoke(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
+ +

+OneArgFunction

+
+public OneArgFunction()
+
+
Default constructor +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public abstract 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 final 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 final 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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OsLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OsLib.html new file mode 100644 index 000000000..5ec691de6 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/OsLib.html @@ -0,0 +1,781 @@ + + + + + + +OsLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class OsLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.OsLib
+
+
+
Direct Known Subclasses:
JseOsLib
+
+
+
+
public class OsLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the standard lua os library. +

+ It is a usable base with simplified stub functions + for library functions that cannot be implemented uniformly + on Jse and Jme. +

+ This can be installed as-is on either platform, or extended + and refined to be used in a complete Jse implementation. +

+ Because the nature of the os library is to encapsulate + os-specific features, the behavior of these functions varies considerably + from their counterparts in the C platform. +

+ The following functions have limited implementations of features + that are not supported well on Jme: +

    +
  • execute()
  • +
  • remove()
  • +
  • rename()
  • +
  • tmpname()
  • +
+

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("os").get("time").call() );
+  
+ In this example the platform-specific JseOsLib library will be loaded, which will include + the base functionality provided by this class. +

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new OsLib());
+ System.out.println( globals.get("os").get("time").call() );
+  
+

+

+ +

+

+
See Also:
LibFunction, +JseOsLib, +JsePlatform, +JmePlatform, +http://www.lua.org/manual/5.1/manual.html#5.8
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  Globalsglobals + +
+           
+static java.lang.StringTMP_PREFIX + +
+           
+static java.lang.StringTMP_SUFFIX + +
+           
+ + + + + + + +
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
OsLib() + +
+          Create and OsLib instance.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+protected  doubleclock() + +
+           
+ java.lang.Stringdate(java.lang.String format, + double time) + +
+          If the time argument is present, this is the time to be formatted + (see the os.time function for a description of this value).
+protected  doubledifftime(double t2, + double t1) + +
+          Returns the number of seconds from time t1 to time t2.
+protected  Varargsexecute(java.lang.String command) + +
+          This function is equivalent to the C function system.
+protected  voidexit(int code) + +
+          Calls the C function exit, with an optional code, to terminate the host program.
+protected  java.lang.Stringgetenv(java.lang.String varname) + +
+          Returns the value of the process environment variable varname, + or the System property value for varname, + or null if the variable is not defined in either environment.
+protected  voidremove(java.lang.String filename) + +
+          Deletes the file or directory with the given name.
+protected  voidrename(java.lang.String oldname, + java.lang.String newname) + +
+          Renames file or directory named oldname to newname.
+protected  java.lang.Stringsetlocale(java.lang.String locale, + java.lang.String category) + +
+          Sets the current locale of the program.
+protected  doubletime(LuaTable table) + +
+          Returns the current time when called without arguments, + or a time representing the date and time specified by the given table.
+protected  java.lang.Stringtmpname() + +
+          Returns a string with a file name that can be used for a temporary file.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+TMP_PREFIX

+
+public static java.lang.String TMP_PREFIX
+
+
+
+
+
+ +

+TMP_SUFFIX

+
+public static java.lang.String TMP_SUFFIX
+
+
+
+
+
+ +

+globals

+
+protected Globals globals
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+OsLib

+
+public OsLib()
+
+
Create and OsLib instance. +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance. +
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)
+
+
+
+ +

+clock

+
+protected double clock()
+
+
+ +
Returns:
an approximation of the amount in seconds of CPU time used by + the program. For luaj this simple returns the elapsed time since the + OsLib class was loaded.
+
+
+
+ +

+difftime

+
+protected double difftime(double t2,
+                          double t1)
+
+
Returns the number of seconds from time t1 to time t2. + In POSIX, Windows, and some other systems, this value is exactly t2-t1. +

+

+
Parameters:
t2 -
t1 - +
Returns:
diffeence in time values, in seconds
+
+
+
+ +

+date

+
+public java.lang.String date(java.lang.String format,
+                             double time)
+
+
If the time argument is present, this is the time to be formatted + (see the os.time function for a description of this value). + Otherwise, date formats the current time. + + Date returns the date as a string, + formatted according to the same rules as ANSII strftime, but without + support for %g, %G, or %V. + + When called without arguments, date returns a reasonable date and + time representation that depends on the host system and on the + current locale (that is, os.date() is equivalent to os.date("%c")). +

+

+
Parameters:
format -
time - time since epoch, or -1 if not supplied +
Returns:
a LString or a LTable containing date and time, + formatted according to the given string format.
+
+
+
+ +

+execute

+
+protected Varargs execute(java.lang.String command)
+
+
This function is equivalent to the C function system. + It passes command to be executed by an operating system shell. + It returns a status code, which is system-dependent. + If command is absent, then it returns nonzero if a shell + is available and zero otherwise. +

+

+
Parameters:
command - command to pass to the system
+
+
+
+ +

+exit

+
+protected void exit(int code)
+
+
Calls the C function exit, with an optional code, to terminate the host program. +

+

+
Parameters:
code -
+
+
+
+ +

+getenv

+
+protected java.lang.String getenv(java.lang.String varname)
+
+
Returns the value of the process environment variable varname, + or the System property value for varname, + or null if the variable is not defined in either environment. + + The default implementation, which is used by the JmePlatform, + only queryies System.getProperty(). + + The JsePlatform overrides this behavior and returns the + environment variable value using System.getenv() if it exists, + or the System property value if it does not. + + A SecurityException may be thrown if access is not allowed + for 'varname'. +

+

+
Parameters:
varname - +
Returns:
String value, or null if not defined
+
+
+
+ +

+remove

+
+protected void remove(java.lang.String filename)
+               throws java.io.IOException
+
+
Deletes the file or directory with the given name. + Directories must be empty to be removed. + If this function fails, it throws and IOException +

+

+
Parameters:
filename - +
Throws: +
java.io.IOException - if it fails
+
+
+
+ +

+rename

+
+protected void rename(java.lang.String oldname,
+                      java.lang.String newname)
+               throws java.io.IOException
+
+
Renames file or directory named oldname to newname. + If this function fails,it throws and IOException +

+

+
Parameters:
oldname - old file name
newname - new file name +
Throws: +
java.io.IOException - if it fails
+
+
+
+ +

+setlocale

+
+protected java.lang.String setlocale(java.lang.String locale,
+                                     java.lang.String category)
+
+
Sets the current locale of the program. locale is a string specifying + a locale; category is an optional string describing which category to change: + "all", "collate", "ctype", "monetary", "numeric", or "time"; the default category + is "all". + + If locale is the empty string, the current locale is set to an implementation- + defined native locale. If locale is the string "C", the current locale is set + to the standard C locale. + + When called with null as the first argument, this function only returns the + name of the current locale for the given category. +

+

+
Parameters:
locale -
category - +
Returns:
the name of the new locale, or null if the request + cannot be honored.
+
+
+
+ +

+time

+
+protected double time(LuaTable table)
+
+
Returns the current time when called without arguments, + or a time representing the date and time specified by the given table. + This table must have fields year, month, and day, + and may have fields hour, min, sec, and isdst + (for a description of these fields, see the os.date function). +

+

+
Parameters:
table - +
Returns:
long value for the time
+
+
+
+ +

+tmpname

+
+protected java.lang.String tmpname()
+
+
Returns a string with a file name that can be used for a temporary file. + The file must be explicitly opened before its use and explicitly removed + when no longer needed. + + On some systems (POSIX), this function also creates a file with that name, + to avoid security risks. (Someone else might create the file with wrong + permissions in the time between getting the name and creating the file.) + You still have to open the file to use it and to remove it (even if you + do not use it). +

+

+ +
Returns:
String filename to use
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.html new file mode 100644 index 000000000..806f03e12 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.html @@ -0,0 +1,647 @@ + + + + + + +PackageLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib
+
+
+
+
public class PackageLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard package and module + library functions. + +

Lua Environment Variables

+ The following variables are available to lua scrips when this library has been loaded: +
    +
  • "package.loaded" Lua table of loaded modules. +
  • "package.path" Search path for lua scripts. +
  • "package.preload" Lua table of uninitialized preload functions. +
  • "package.searchers" Lua table of functions that search for object to load. +
+ +

Java Environment Variables

+ These Java environment variables affect the library behavior: +
    +
  • "luaj.package.path" Initial value for "package.path". Default value is "?.lua" +
+ +

Loading

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +
 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("require").call"foo") );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ System.out.println( globals.get("require").call("foo") );
+  
+

Limitations

+ This library has been implemented to match as closely as possible the behavior in the corresponding library in C. + However, the default filesystem search semantics are different and delegated to the bas library + as outlined in the BaseLib and JseBaseLib documentation. +

+

+ +

+

+
See Also:
LibFunction, +BaseLib, +JseBaseLib, +JsePlatform, +JmePlatform, +Lua 5.2 Package Lib Reference
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Nested Class Summary
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+ classPackageLib.searchpath + +
+           
+ + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringDEFAULT_LUA_PATH + +
+          The default value to use for package.path.
+ PackageLib.java_searcherjava_searcher + +
+          Loader that loads as a Java class.
+ PackageLib.lua_searcherlua_searcher + +
+          Loader that loads as a lua script using the lua path currently in PackageLib.searchpath
+ PackageLib.preload_searcherpreload_searcher + +
+          Loader that loads from preload table if found there
+ + + + + + + +
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
PackageLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by adding package functions + to the supplied environment, and returning it as the return value.
+ voidsetIsLoaded(java.lang.String name, + LuaTable value) + +
+          Allow packages to mark themselves as loaded
+ voidsetLuaPath(java.lang.String newLuaPath) + +
+          Set the lua path used by this library instance to a new value.
+static java.lang.StringtoClassname(java.lang.String filename) + +
+          Convert lua filename to valid class name
+ java.lang.Stringtojstring() + +
+          Convert to human readable String for any type.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.LibFunction
bind, bind, call, newupe, newupl, newupn
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+DEFAULT_LUA_PATH

+
+public static java.lang.String DEFAULT_LUA_PATH
+
+
The default value to use for package.path. This can be set with the system property + "luaj.package.path", and is "?.lua" by default. +

+

+
+
+
+ +

+preload_searcher

+
+public PackageLib.preload_searcher preload_searcher
+
+
Loader that loads from preload table if found there +

+

+
+
+
+ +

+lua_searcher

+
+public PackageLib.lua_searcher lua_searcher
+
+
Loader that loads as a lua script using the lua path currently in PackageLib.searchpath +

+

+
+
+
+ +

+java_searcher

+
+public PackageLib.java_searcher java_searcher
+
+
Loader that loads as a Java class. Class must have public constructor and be a LuaValue. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+PackageLib

+
+public PackageLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by adding package functions + to the supplied environment, and returning it as the return value. + It also creates the package.preload and package.loaded tables for use by + other libraries. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance. +
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)
+
+
+
+ +

+setIsLoaded

+
+public void setIsLoaded(java.lang.String name,
+                        LuaTable value)
+
+
Allow packages to mark themselves as loaded +

+

+
+
+
+
+ +

+setLuaPath

+
+public void setLuaPath(java.lang.String newLuaPath)
+
+
Set the lua path used by this library instance to a new value. + Merely sets the value of PackageLib.searchpath to be used in subsequent searches. +

+

+
+
+
+
+ +

+tojstring

+
+public java.lang.String tojstring()
+
+
Description copied from class: LuaValue
+
Convert to human readable String for any type. +

+

+
Overrides:
tojstring in class LibFunction
+
+
+ +
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), +LuaValue.optjstring(String), +LuaValue.checkjstring(), +LuaValue.isstring(), +LuaValue.TSTRING
+
+
+
+ +

+toClassname

+
+public static final java.lang.String toClassname(java.lang.String filename)
+
+
Convert lua filename to valid class name +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.java_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.java_searcher.html new file mode 100644 index 000000000..abc6651be --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.java_searcher.html @@ -0,0 +1,356 @@ + + + + + + +PackageLib.java_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.java_searcher

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.java_searcher
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public class PackageLib.java_searcher
extends 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
PackageLib.java_searcher() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, onInvoke
+ + + + + + + +
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, 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
+ +

+PackageLib.java_searcher

+
+public PackageLib.java_searcher()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
Description copied from class: VarArgFunction
+
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 class VarArgFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.loadlib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.loadlib.html new file mode 100644 index 000000000..7bea79fc3 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.loadlib.html @@ -0,0 +1,341 @@ + + + + + + +PackageLib.loadlib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.loadlib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.loadlib
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public static class PackageLib.loadlib
extends 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
PackageLib.loadlib() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Varargsloadlib(Varargs args) + +
+           
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, invoke, onInvoke
+ + + + + + + +
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, 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
+ +

+PackageLib.loadlib

+
+public PackageLib.loadlib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+loadlib

+
+public Varargs loadlib(Varargs args)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.lua_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.lua_searcher.html new file mode 100644 index 000000000..f357ceacc --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.lua_searcher.html @@ -0,0 +1,356 @@ + + + + + + +PackageLib.lua_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.lua_searcher

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.lua_searcher
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public class PackageLib.lua_searcher
extends 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
PackageLib.lua_searcher() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, onInvoke
+ + + + + + + +
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, 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
+ +

+PackageLib.lua_searcher

+
+public PackageLib.lua_searcher()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
Description copied from class: VarArgFunction
+
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 class VarArgFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.preload_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.preload_searcher.html new file mode 100644 index 000000000..36a19ae13 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.preload_searcher.html @@ -0,0 +1,356 @@ + + + + + + +PackageLib.preload_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.preload_searcher

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.preload_searcher
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public class PackageLib.preload_searcher
extends 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
PackageLib.preload_searcher() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, onInvoke
+ + + + + + + +
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, 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
+ +

+PackageLib.preload_searcher

+
+public PackageLib.preload_searcher()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
Description copied from class: VarArgFunction
+
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 class VarArgFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.require.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.require.html new file mode 100644 index 000000000..c2f67a987 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.require.html @@ -0,0 +1,392 @@ + + + + + + +PackageLib.require (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.require

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.OneArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.require
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public class PackageLib.require
extends OneArgFunction
+ + +

+require (modname) + + Loads the given module. The function starts by looking into the package.loaded table + to determine whether modname is already loaded. If it is, then require returns the value + stored at package.loaded[modname]. Otherwise, it tries to find a loader for the module. + + To find a loader, require is guided by the package.searchers sequence. + By changing this sequence, we can change how require looks for a module. + The following explanation is based on the default configuration for package.searchers. + + First require queries package.preload[modname]. If it has a value, this value + (which should be a function) is the loader. Otherwise require searches for a Lua loader using + the path stored in package.path. If that also fails, it searches for a Java loader using + the classpath, using the public default constructor, and casting the instance to LuaFunction. + + Once a loader is found, require calls the loader with two arguments: modname and an extra value + dependent on how it got the loader. If the loader came from a file, this extra value is the file name. + If the loader is a Java instance of LuaFunction, this extra value is the environment. + If the loader returns any non-nil value, require assigns the returned value to package.loaded[modname]. + If the loader does not return a non-nil value and has not assigned any value to package.loaded[modname], + then require assigns true to this entry. + In any case, require returns the final value of package.loaded[modname]. + + If there is any error loading or running the module, or if it cannot find any loader for the module, + then require raises an error. +

+ +

+


+ +

+ + + + + + + +
+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
PackageLib.require() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.OneArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+PackageLib.require

+
+public PackageLib.require()
+
+
+ + + + + + + + +
+Method Detail
+ +

+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. +

+

+
Specified by:
call in class OneArgFunction
+
+
+
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)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.searchpath.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.searchpath.html new file mode 100644 index 000000000..1b280d399 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/PackageLib.searchpath.html @@ -0,0 +1,356 @@ + + + + + + +PackageLib.searchpath (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class PackageLib.searchpath

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.PackageLib.searchpath
+
+
+
Enclosing class:
PackageLib
+
+
+
+
public class PackageLib.searchpath
extends 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
PackageLib.searchpath() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, onInvoke
+ + + + + + + +
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, 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
+ +

+PackageLib.searchpath

+
+public PackageLib.searchpath()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
Description copied from class: VarArgFunction
+
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 class VarArgFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ResourceFinder.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ResourceFinder.html new file mode 100644 index 000000000..3b3e588d3 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ResourceFinder.html @@ -0,0 +1,234 @@ + + + + + + +ResourceFinder (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Interface ResourceFinder

+
+
All Known Implementing Classes:
BaseLib, JseBaseLib
+
+
+
+
public interface ResourceFinder
+ + +

+Interface for opening application resource files such as scripts sources. +

+ This is used by required to load files that are part of + the application, and implemented by BaseLib + for both the Jme and Jse platforms. +

+ The Jme version of base lib BaseLib + implements Globals.finder via Class.getResourceAsStream(String), + while the Jse version JseBaseLib implements it using File.File(String). +

+ The io library does not use this API for file manipulation. +

+

+ +

+

+
See Also:
BaseLib, +Globals.finder, +JseBaseLib, +JmePlatform, +JsePlatform
+
+ +

+ + + + + + + + + + + + +
+Method Summary
+ java.io.InputStreamfindResource(java.lang.String filename) + +
+          Try to open a file, or return null if not found.
+  +

+ + + + + + + + +
+Method Detail
+ +

+findResource

+
+java.io.InputStream findResource(java.lang.String filename)
+
+
Try to open a file, or return null if not found. +

+

+
Parameters:
filename - +
Returns:
InputStream, or null if not found.
See Also:
BaseLib, +JseBaseLib
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/StringLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/StringLib.html new file mode 100644 index 000000000..6053416d8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/StringLib.html @@ -0,0 +1,396 @@ + + + + + + +StringLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class StringLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.StringLib
+
+
+
+
public class StringLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard string + library. +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("string").get("upper").call( LuaValue.valueOf("abcde") ) );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new StringLib());
+ System.out.println( globals.get("string").get("upper").call( LuaValue.valueOf("abcde") ) );
+  
+

+ This is a direct port of the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 String Lib Reference
+
+ +

+ + + + + + + +
+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
StringLib() + +
+          Construct a StringLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + call(LuaValue, LuaValue).
+  + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+StringLib

+
+public StringLib()
+
+
Construct a StringLib, which can be initialized by calling it with a + modname string, and a global environment table as arguments using + call(LuaValue, LuaValue). +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. + Creates a metatable that uses __INDEX to fall back on itself to support string + method operations. + If the shared strings metatable instance is null, will set the metatable as + the global shared metatable for strings. +

+ All tables and metatables are read-write by default so if this will be used in + a server environment, sandboxing should be used. In particular, the + LuaString.s_metatable table should probably be made read-only. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance. +
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)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TableLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TableLib.html new file mode 100644 index 000000000..74a55ac05 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TableLib.html @@ -0,0 +1,383 @@ + + + + + + +TableLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class TableLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.TableLib
+
+
+
+
public class TableLib
extends TwoArgFunction
+ + +

+Subclass of LibFunction which implements the lua standard table + library. + +

+ Typically, this library is included as part of a call to either + JsePlatform.standardGlobals() or JmePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("table").get("length").call( LuaValue.tableOf() ) );
+  
+

+ To instantiate and use it directly, + link it into your globals table via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new TableLib());
+ System.out.println( globals.get("table").get("length").call( LuaValue.tableOf() ) );
+  
+

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Table Lib Reference
+
+ +

+ + + + + + + +
+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
TableLib() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+TableLib

+
+public TableLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

+

+
Specified by:
call in class TwoArgFunction
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance. +
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)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ThreeArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ThreeArgFunction.html new file mode 100644 index 000000000..e00348632 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ThreeArgFunction.html @@ -0,0 +1,550 @@ + + + + + + +ThreeArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class ThreeArgFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.ThreeArgFunction
+
+
+
+
public abstract class ThreeArgFunction
extends LibFunction
+ + +

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

+ Subclasses need only implement LuaValue.call(LuaValue,LuaValue,LuaValue) to complete this class, + simplifying development. + All other uses of call(), invoke(Varargs),etc, + are routed through this method by this class, + dropping or extending arguments with nil values as required. +

+ If more or less than three arguments are required, + or variable argument or variable return values, + then use one of the related function + ZeroArgFunction, OneArgFunction, TwoArgFunction, or VarArgFunction. +

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

+ +

+

+
See Also:
call(LuaValue,LuaValue,LuaValue), +LibFunction, +ZeroArgFunction, +OneArgFunction, +TwoArgFunction, +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
ThreeArgFunction() + +
+          Default constructor
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+abstract  LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ Varargsinvoke(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
+ +

+ThreeArgFunction

+
+public ThreeArgFunction()
+
+
Default constructor +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public abstract 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)
+
+
+
+ +

+call

+
+public final 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 final 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)
+
+
+
+ +

+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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TwoArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TwoArgFunction.html new file mode 100644 index 000000000..4322230fb --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/TwoArgFunction.html @@ -0,0 +1,553 @@ + + + + + + +TwoArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class TwoArgFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+
+
+
Direct Known Subclasses:
BaseLib, Bit32Lib, CoroutineLib, DebugLib, IoLib, MathLib, MathLib.BinaryOp, OsLib, PackageLib, StringLib, TableLib
+
+
+
+
public abstract class TwoArgFunction
extends LibFunction
+ + +

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

+ Subclasses need only implement LuaValue.call(LuaValue,LuaValue) to complete this class, + simplifying development. + All other uses of call(), invoke(Varargs),etc, + are routed through this method by this class, + dropping or extending arguments with nil values as required. +

+ If more or less than two arguments are required, + or variable argument or variable return values, + then use one of the related function + ZeroArgFunction, OneArgFunction, ThreeArgFunction, or VarArgFunction. +

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

+ +

+

+
See Also:
call(LuaValue,LuaValue), +LibFunction, +ZeroArgFunction, +OneArgFunction, +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
TwoArgFunction() + +
+          Default constructor
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+abstract  LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ Varargsinvoke(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
+ +

+TwoArgFunction

+
+public TwoArgFunction()
+
+
Default constructor +

+

+ + + + + + + + +
+Method Detail
+ +

+call

+
+public abstract 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 final 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 final 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,
+                     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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/VarArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/VarArgFunction.html new file mode 100644 index 000000000..33ffb1e3d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/VarArgFunction.html @@ -0,0 +1,576 @@ + + + + + + +VarArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class VarArgFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+
+
+
Direct Known Subclasses:
LuajavaLib, PackageLib.java_searcher, PackageLib.loadlib, PackageLib.lua_searcher, PackageLib.preload_searcher, PackageLib.searchpath
+
+
+
+
public abstract class VarArgFunction
extends LibFunction
+ + +

+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. +

+ +

+

+
See Also:
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
+ LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ VarargsonInvoke(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.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, 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
+ +

+VarArgFunction

+
+public VarArgFunction()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public 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 args)
+
+
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 class LibFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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)
+
+
+
+ +

+onInvoke

+
+public Varargs onInvoke(Varargs args)
+
+
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. +

+

+
Overrides:
onInvoke in class LuaValue
+
+
+
Parameters:
args - the arguments to the call invocation. +
Returns:
Varargs the return values, possible a TailcallVarargs.
See Also:
LuaValue.call(), +LuaValue.invoke(), +LuaValue.method(LuaValue), +LuaValue.invokemethod(LuaValue)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ZeroArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ZeroArgFunction.html new file mode 100644 index 000000000..525667f31 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/ZeroArgFunction.html @@ -0,0 +1,548 @@ + + + + + + +ZeroArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib +
+Class ZeroArgFunction

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by 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  LuaValuecall() + +
+          Call this with 0 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg) + +
+          Call this with 1 argument, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2) + +
+          Call this with 2 arguments, including metatag processing, + and return only the first return value.
+ LuaValuecall(LuaValue arg1, + LuaValue arg2, + LuaValue arg3) + +
+          Call this with 3 arguments, including metatag processing, + and return only the first return value.
+ Varargsinvoke(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. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/BaseLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/BaseLib.html new file mode 100644 index 000000000..88fbb7d21 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/BaseLib.html @@ -0,0 +1,210 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.BaseLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.BaseLib

+
+ + + + + + + + + + + + + +
+Packages that use BaseLib
org.luaj.vm2  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of BaseLib in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as BaseLib
+ BaseLibGlobals.baselib + +
+          The BaseLib instance loaded into this Globals
+  +

+ + + + + +
+Uses of BaseLib in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Subclasses of BaseLib in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/Bit32Lib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/Bit32Lib.html new file mode 100644 index 000000000..a0b0e6b15 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/Bit32Lib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.Bit32Lib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.Bit32Lib

+
+No usage of org.luaj.vm2.lib.Bit32Lib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/CoroutineLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/CoroutineLib.html new file mode 100644 index 000000000..0a1ce8391 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/CoroutineLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.CoroutineLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.CoroutineLib

+
+No usage of org.luaj.vm2.lib.CoroutineLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.CallStack.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.CallStack.html new file mode 100644 index 000000000..6f8b804c3 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.CallStack.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.DebugLib.CallStack (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.DebugLib.CallStack

+
+No usage of org.luaj.vm2.lib.DebugLib.CallStack +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.html new file mode 100644 index 000000000..17830c6b2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/DebugLib.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.DebugLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.DebugLib

+
+ + + + + + + + + +
+Packages that use DebugLib
org.luaj.vm2  
+  +

+ + + + + +
+Uses of DebugLib in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as DebugLib
+ DebugLibGlobals.debuglib + +
+          The DebugLib instance loaded into this Globals, or null if debugging is not enabled
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.File.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.File.html new file mode 100644 index 000000000..e8fd83787 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.File.html @@ -0,0 +1,423 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.IoLib.File (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.IoLib.File

+
+ + + + + + + + + + + + + + + + + +
+Packages that use IoLib.File
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of IoLib.File in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib that return IoLib.File
+protected abstract  IoLib.FileIoLib.openFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+          Open a file in a particular mode.
+protected abstract  IoLib.FileIoLib.openProgram(java.lang.String prog, + java.lang.String mode) + +
+          Start a new process and return a file for input or output
+protected abstract  IoLib.FileIoLib.tmpFile() + +
+          Open a temporary file.
+protected abstract  IoLib.FileIoLib.wrapStderr() + +
+          Wrap the standard error output.
+protected abstract  IoLib.FileIoLib.wrapStdin() + +
+          Wrap the standard input.
+protected abstract  IoLib.FileIoLib.wrapStdout() + +
+          Wrap the standard output.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib with parameters of type IoLib.File
+static LuaValueIoLib.freadall(IoLib.File f) + +
+           
+static LuaValueIoLib.freadbytes(IoLib.File f, + int count) + +
+           
+static LuaValueIoLib.freadline(IoLib.File f) + +
+           
+static LuaValueIoLib.freadnumber(IoLib.File f) + +
+           
+static LuaValueIoLib.freaduntil(IoLib.File f, + boolean lineonly) + +
+           
+  +

+ + + + + +
+Uses of IoLib.File in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jme that return IoLib.File
+protected  IoLib.FileJmeIoLib.openFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+           
+protected  IoLib.FileJmeIoLib.openProgram(java.lang.String prog, + java.lang.String mode) + +
+           
+protected  IoLib.FileJmeIoLib.tmpFile() + +
+           
+protected  IoLib.FileJmeIoLib.wrapStderr() + +
+           
+protected  IoLib.FileJmeIoLib.wrapStdin() + +
+           
+protected  IoLib.FileJmeIoLib.wrapStdout() + +
+           
+  +

+ + + + + +
+Uses of IoLib.File in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.luaj.vm2.lib.jse that return IoLib.File
+protected  IoLib.FileJseIoLib.openFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+           
+protected  IoLib.FileJseIoLib.openProgram(java.lang.String prog, + java.lang.String mode) + +
+           
+protected  IoLib.FileJseIoLib.tmpFile() + +
+           
+protected  IoLib.FileJseIoLib.wrapStderr() + +
+           
+protected  IoLib.FileJseIoLib.wrapStdin() + +
+           
+protected  IoLib.FileJseIoLib.wrapStdout() + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.html new file mode 100644 index 000000000..0203c73b0 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/IoLib.html @@ -0,0 +1,211 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.IoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.IoLib

+
+ + + + + + + + + + + + + +
+Packages that use IoLib
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of IoLib in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of IoLib in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of IoLib in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Subclasses of IoLib in org.luaj.vm2.lib.jse
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/LibFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/LibFunction.html new file mode 100644 index 000000000..c73687599 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/LibFunction.html @@ -0,0 +1,464 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.LibFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.LibFunction

+
+ + + + + + + + + + + + + + + + + +
+Packages that use LibFunction
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of LibFunction in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LibFunction in org.luaj.vm2.lib
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+ classBit32Lib + +
+          Subclass of LibFunction that implements the Lua standard bit32 library.
+ classCoroutineLib + +
+          Subclass of LibFunction which implements the lua standard coroutine + library.
+ classDebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
+ classIoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
+ classMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+protected static classMathLib.BinaryOp + +
+           
+protected static classMathLib.UnaryOp + +
+           
+ classOneArgFunction + +
+          Abstract base class for Java function implementations that take one argument and + return one value.
+ classOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classPackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+ classPackageLib.searchpath + +
+           
+ classStringLib + +
+          Subclass of LibFunction which implements the lua standard string + library.
+ classTableLib + +
+          Subclass of LibFunction which implements the lua standard table + library.
+ classThreeArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classTwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+ classVarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+ classZeroArgFunction + +
+          Abstract base class for Java function implementations that take no arguments and + return one value.
+  +

+ + + + + +
+Uses of LibFunction in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of LibFunction in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of LibFunction in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of LibFunction in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classLuajavaLib + +
+          Subclass of LibFunction which implements the features of the luajava package.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.BinaryOp.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.BinaryOp.html new file mode 100644 index 000000000..679863001 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.BinaryOp.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.MathLib.BinaryOp (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.MathLib.BinaryOp

+
+No usage of org.luaj.vm2.lib.MathLib.BinaryOp +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.UnaryOp.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.UnaryOp.html new file mode 100644 index 000000000..368d7b552 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.UnaryOp.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.MathLib.UnaryOp (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.MathLib.UnaryOp

+
+No usage of org.luaj.vm2.lib.MathLib.UnaryOp +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.html new file mode 100644 index 000000000..ed9ead4e2 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/MathLib.html @@ -0,0 +1,211 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.MathLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.MathLib

+
+ + + + + + + + + + + + + +
+Packages that use MathLib
org.luaj.vm2.lib  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of MathLib in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.lib declared as MathLib
+static MathLibMathLib.MATHLIB + +
+          Pointer to the latest MathLib instance, used only to dispatch + math.exp to tha correct platform math library.
+  +

+ + + + + +
+Uses of MathLib in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Subclasses of MathLib in org.luaj.vm2.lib.jse
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OneArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OneArgFunction.html new file mode 100644 index 000000000..ff790132d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OneArgFunction.html @@ -0,0 +1,190 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.OneArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.OneArgFunction

+
+ + + + + + + + + +
+Packages that use OneArgFunction
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of OneArgFunction in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + +
Subclasses of OneArgFunction in org.luaj.vm2.lib
+protected static classMathLib.UnaryOp + +
+           
+ classPackageLib.require + +
+          require (modname) + + Loads the given module.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OsLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OsLib.html new file mode 100644 index 000000000..eec913abf --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/OsLib.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.OsLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.OsLib

+
+ + + + + + + + + +
+Packages that use OsLib
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of OsLib in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Subclasses of OsLib in org.luaj.vm2.lib.jse
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.html new file mode 100644 index 000000000..8d1ce6e60 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib

+
+ + + + + + + + + +
+Packages that use PackageLib
org.luaj.vm2  
+  +

+ + + + + +
+Uses of PackageLib in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as PackageLib
+ PackageLibGlobals.package_ + +
+          The PackageLib instance loaded into this Globals
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.java_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.java_searcher.html new file mode 100644 index 000000000..fa832df38 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.java_searcher.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.java_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.java_searcher

+
+ + + + + + + + + +
+Packages that use PackageLib.java_searcher
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of PackageLib.java_searcher in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.lib declared as PackageLib.java_searcher
+ PackageLib.java_searcherPackageLib.java_searcher + +
+          Loader that loads as a Java class.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.loadlib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.loadlib.html new file mode 100644 index 000000000..548ba16e7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.loadlib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.loadlib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.loadlib

+
+No usage of org.luaj.vm2.lib.PackageLib.loadlib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.lua_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.lua_searcher.html new file mode 100644 index 000000000..5102ff7e6 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.lua_searcher.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.lua_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.lua_searcher

+
+ + + + + + + + + +
+Packages that use PackageLib.lua_searcher
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of PackageLib.lua_searcher in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.lib declared as PackageLib.lua_searcher
+ PackageLib.lua_searcherPackageLib.lua_searcher + +
+          Loader that loads as a lua script using the lua path currently in PackageLib.searchpath
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.preload_searcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.preload_searcher.html new file mode 100644 index 000000000..2a0bec04c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.preload_searcher.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.preload_searcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.preload_searcher

+
+ + + + + + + + + +
+Packages that use PackageLib.preload_searcher
org.luaj.vm2.lib  
+  +

+ + + + + +
+Uses of PackageLib.preload_searcher in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.lib declared as PackageLib.preload_searcher
+ PackageLib.preload_searcherPackageLib.preload_searcher + +
+          Loader that loads from preload table if found there
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.require.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.require.html new file mode 100644 index 000000000..707640aee --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.require.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.require (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.require

+
+No usage of org.luaj.vm2.lib.PackageLib.require +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.searchpath.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.searchpath.html new file mode 100644 index 000000000..fdad79e0a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/PackageLib.searchpath.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.PackageLib.searchpath (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.PackageLib.searchpath

+
+No usage of org.luaj.vm2.lib.PackageLib.searchpath +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ResourceFinder.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ResourceFinder.html new file mode 100644 index 000000000..b3ad16773 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ResourceFinder.html @@ -0,0 +1,239 @@ + + + + + + +Uses of Interface org.luaj.vm2.lib.ResourceFinder (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.luaj.vm2.lib.ResourceFinder

+
+ + + + + + + + + + + + + + + + + +
+Packages that use ResourceFinder
org.luaj.vm2  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of ResourceFinder in org.luaj.vm2
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2 declared as ResourceFinder
+ ResourceFinderGlobals.finder + +
+          The installed ResourceFinder for looking files by name.
+  +

+ + + + + +
+Uses of ResourceFinder in org.luaj.vm2.lib
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.lib that implement ResourceFinder
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+  +

+ + + + + +
+Uses of ResourceFinder in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.lib.jse that implement ResourceFinder
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/StringLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/StringLib.html new file mode 100644 index 000000000..16249d696 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/StringLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.StringLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.StringLib

+
+No usage of org.luaj.vm2.lib.StringLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TableLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TableLib.html new file mode 100644 index 000000000..7e37ff578 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TableLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.TableLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.TableLib

+
+No usage of org.luaj.vm2.lib.TableLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ThreeArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ThreeArgFunction.html new file mode 100644 index 000000000..d1f8a3d52 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ThreeArgFunction.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.ThreeArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.ThreeArgFunction

+
+No usage of org.luaj.vm2.lib.ThreeArgFunction +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TwoArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TwoArgFunction.html new file mode 100644 index 000000000..10b02d839 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/TwoArgFunction.html @@ -0,0 +1,353 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.TwoArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.TwoArgFunction

+
+ + + + + + + + + + + + + + + + + +
+Packages that use TwoArgFunction
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of TwoArgFunction in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of TwoArgFunction in org.luaj.vm2.lib
+ classBaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
+ classBit32Lib + +
+          Subclass of LibFunction that implements the Lua standard bit32 library.
+ classCoroutineLib + +
+          Subclass of LibFunction which implements the lua standard coroutine + library.
+ classDebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
+ classIoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
+ classMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+protected static classMathLib.BinaryOp + +
+           
+ classOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+ classPackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
+ classStringLib + +
+          Subclass of LibFunction which implements the lua standard string + library.
+ classTableLib + +
+          Subclass of LibFunction which implements the lua standard table + library.
+  +

+ + + + + +
+Uses of TwoArgFunction in org.luaj.vm2.lib.jme
+  +

+ + + + + + + + + +
Subclasses of TwoArgFunction in org.luaj.vm2.lib.jme
+ classJmeIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+  +

+ + + + + +
+Uses of TwoArgFunction in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Subclasses of TwoArgFunction in org.luaj.vm2.lib.jse
+ classJseBaseLib + +
+          Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
+ classJseIoLib + +
+          Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
+ classJseMathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
+ classJseOsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/VarArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/VarArgFunction.html new file mode 100644 index 000000000..826994deb --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/VarArgFunction.html @@ -0,0 +1,241 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.VarArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.VarArgFunction

+
+ + + + + + + + + + + + + +
+Packages that use VarArgFunction
org.luaj.vm2.lib  
org.luaj.vm2.lib.jse  
+  +

+ + + + + +
+Uses of VarArgFunction in org.luaj.vm2.lib
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of VarArgFunction in org.luaj.vm2.lib
+ classPackageLib.java_searcher + +
+           
+static classPackageLib.loadlib + +
+           
+ classPackageLib.lua_searcher + +
+           
+ classPackageLib.preload_searcher + +
+           
+ classPackageLib.searchpath + +
+           
+  +

+ + + + + +
+Uses of VarArgFunction in org.luaj.vm2.lib.jse
+  +

+ + + + + + + + + +
Subclasses of VarArgFunction in org.luaj.vm2.lib.jse
+ classLuajavaLib + +
+          Subclass of LibFunction which implements the features of the luajava package.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ZeroArgFunction.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ZeroArgFunction.html new file mode 100644 index 000000000..293fdcb33 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/class-use/ZeroArgFunction.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.ZeroArgFunction (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.ZeroArgFunction

+
+No usage of org.luaj.vm2.lib.ZeroArgFunction +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmeIoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmeIoLib.html new file mode 100644 index 000000000..d440f180f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmeIoLib.html @@ -0,0 +1,575 @@ + + + + + + +JmeIoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jme +
+Class JmeIoLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.IoLib
+                          extended by org.luaj.vm2.lib.jme.JmeIoLib
+
+
+
+
public class JmeIoLib
extends IoLib
+ + +

+Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform. +

+ The implementation of the is based on CLDC 1.0 and StreamConnection. + However, seek is not supported. +

+ Typically, this library is included as part of a call to + JmePlatform.standardGlobals() +

 Globals globals = JmePlatform.standardGlobals();
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JmeBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new JmeIoLib());
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+

However, other libraries such as MathLib are not loaded in this case. +

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +IoLib, +JseIoLib, +Lua 5.2 I/O Lib Reference
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.luaj.vm2.lib.IoLib
IoLib.File
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.luaj.vm2.lib.IoLib
FILE_NAMES, FTYPE_NAMED, FTYPE_STDERR, FTYPE_STDIN, FTYPE_STDOUT, globals, IO_NAMES
+ + + + + + + +
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
JmeIoLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  IoLib.FileopenFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+          Open a file in a particular mode.
+protected  IoLib.FileopenProgram(java.lang.String prog, + java.lang.String mode) + +
+          Start a new process and return a file for input or output
+protected  IoLib.FiletmpFile() + +
+          Open a temporary file.
+protected  IoLib.FilewrapStderr() + +
+          Wrap the standard error output.
+protected  IoLib.FilewrapStdin() + +
+          Wrap the standard input.
+protected  IoLib.FilewrapStdout() + +
+          Wrap the standard output.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.IoLib
_file_close, _file_flush, _file_lines, _file_read, _file_seek, _file_setvbuf, _file_write, _io_close, _io_flush, _io_index, _io_input, _io_lines, _io_open, _io_output, _io_popen, _io_read, _io_tmpfile, _io_type, _io_write, _lines_iter, call, freadall, freadbytes, freadline, freadnumber, freaduntil
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+JmeIoLib

+
+public JmeIoLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+wrapStdin

+
+protected IoLib.File wrapStdin()
+                        throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard input. +

+

+
Specified by:
wrapStdin in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStdout

+
+protected IoLib.File wrapStdout()
+                         throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard output. +

+

+
Specified by:
wrapStdout in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStderr

+
+protected IoLib.File wrapStderr()
+                         throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard error output. +

+

+
Specified by:
wrapStderr in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+openFile

+
+protected IoLib.File openFile(java.lang.String filename,
+                              boolean readMode,
+                              boolean appendMode,
+                              boolean updateMode,
+                              boolean binaryMode)
+                       throws java.io.IOException
+
+
Description copied from class: IoLib
+
Open a file in a particular mode. +

+

+
Specified by:
openFile in class IoLib
+
+
+
readMode - true if opening in read mode
appendMode - true if opening in append mode
updateMode - true if opening in update mode
binaryMode - true if opening in binary mode +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+
+ +

+openProgram

+
+protected IoLib.File openProgram(java.lang.String prog,
+                                 java.lang.String mode)
+                          throws java.io.IOException
+
+
Description copied from class: IoLib
+
Start a new process and return a file for input or output +

+

+
Specified by:
openProgram in class IoLib
+
+
+
Parameters:
prog - the program to execute
mode - "r" to read, "w" to write +
Returns:
File to read to or write from +
Throws: +
java.io.IOException - if an i/o exception occurs
+
+
+
+ +

+tmpFile

+
+protected IoLib.File tmpFile()
+                      throws java.io.IOException
+
+
Description copied from class: IoLib
+
Open a temporary file. +

+

+
Specified by:
tmpFile in class IoLib
+
+
+ +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmePlatform.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmePlatform.html new file mode 100644 index 000000000..1207d5806 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/JmePlatform.html @@ -0,0 +1,337 @@ + + + + + + +JmePlatform (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jme +
+Class JmePlatform

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.jme.JmePlatform
+
+
+
+
public class JmePlatform
extends java.lang.Object
+ + +

+The JmePlatform class is a convenience class to standardize + how globals tables are initialized for the JME platform. +

+ The JME platform, being limited, cannot implement all libraries in all aspects. The main limitations are +

    +
  • Some math functions are not implemented, see MathLib for details
  • +
  • Scripts are loaded via Class.getResourceAsStream(), see BaseLib for details
  • +
  • OS functions execute(), remove(), rename(), and tmpname() vary, see OsLib for details
  • +
  • I/O seek is not implemented, see JmeIoLib for details
  • +
  • luajava is not available, see LuajavaLib for details
  • +
+

+ It is used to allocate either a set of standard globals using + standardGlobals() or debug globals using debugGlobals() +

+ A simple example of initializing globals and using them from Java is: +

 Globals global = JmePlatform.standardGlobals();
+ global.get("print").call(LuaValue.valueOf("hello, world"));
+  
+

+ Once globals are created, a simple way to load and run a script is: +

 LoadState.load( getClass().getResourceAsStream("main.lua"), "main.lua", globals ).call();
+  
+

+ although require could also be used: +

 globals.get("require").call(LuaValue.valueOf("main"));
+  
+ For this to succeed, the file "main.lua" must be a resource in the class path. + See BaseLib for details on finding scripts using ResourceFinder. +

+ The standard globals will contain all standard libraries in their JME flavors: +

+ In addition, the LuaC compiler is installed so lua files may be loaded in their source form. +

+ The debug globals are simply the standard globals plus the debug library DebugLib. +

+

+ The class ensures that initialization is done in the correct order. +

+ +

+

+
See Also:
Globals, +JsePlatform
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
JmePlatform() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static GlobalsdebugGlobals() + +
+          Create standard globals including the DebugLib library.
+static GlobalsstandardGlobals() + +
+          Create a standard set of globals for JME including all the libraries.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+JmePlatform

+
+public JmePlatform()
+
+
+ + + + + + + + +
+Method Detail
+ +

+standardGlobals

+
+public static Globals standardGlobals()
+
+
Create a standard set of globals for JME including all the libraries. +

+

+ +
Returns:
Table of globals initialized with the standard JME libraries
See Also:
debugGlobals(), +JsePlatform, +JmePlatform
+
+
+
+ +

+debugGlobals

+
+public static Globals debugGlobals()
+
+
Create standard globals including the DebugLib library. +

+

+ +
Returns:
Table of globals initialized with the standard JSE and debug libraries
See Also:
standardGlobals(), +JsePlatform, +JmePlatform, +DebugLib
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmeIoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmeIoLib.html new file mode 100644 index 000000000..44fbf987f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmeIoLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jme.JmeIoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jme.JmeIoLib

+
+No usage of org.luaj.vm2.lib.jme.JmeIoLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmePlatform.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmePlatform.html new file mode 100644 index 000000000..3b9f5d719 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/class-use/JmePlatform.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jme.JmePlatform (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jme.JmePlatform

+
+No usage of org.luaj.vm2.lib.jme.JmePlatform +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-frame.html new file mode 100644 index 000000000..157ec52be --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +org.luaj.vm2.lib.jme (Luaj API) + + + + + + + + + + + +org.luaj.vm2.lib.jme + + + + +
+Classes  + +
+JmeIoLib +
+JmePlatform
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-summary.html new file mode 100644 index 000000000..ccbee47b1 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-summary.html @@ -0,0 +1,163 @@ + + + + + + +org.luaj.vm2.lib.jme (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.lib.jme +

+ + + + + + + + + + + + + +
+Class Summary
JmeIoLibSubclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
JmePlatformThe JmePlatform class is a convenience class to standardize + how globals tables are initialized for the JME platform.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-tree.html new file mode 100644 index 000000000..268cc6f55 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-tree.html @@ -0,0 +1,165 @@ + + + + + + +org.luaj.vm2.lib.jme Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.lib.jme +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-use.html new file mode 100644 index 000000000..5ec9d2f2b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jme/package-use.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Package org.luaj.vm2.lib.jme (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.lib.jme

+
+No usage of org.luaj.vm2.lib.jme +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceJavaToLua.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceJavaToLua.html new file mode 100644 index 000000000..9181ff1ef --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceJavaToLua.html @@ -0,0 +1,298 @@ + + + + + + +CoerceJavaToLua (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class CoerceJavaToLua

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.jse.CoerceJavaToLua
+
+
+
+
public class CoerceJavaToLua
extends java.lang.Object
+ + +

+Helper class to coerce values from Java to lua within the luajava library. +

+ This class is primarily used by the LuajavaLib, + but can also be used directly when working with Java/lua bindings. +

+ To coerce scalar types, the various, generally the valueOf(type) methods + on LuaValue may be used: +

+

+ To coerce arrays of objects and lists, the listOf(..) and tableOf(...) methods + on LuaValue may be used: +

+ The method coerce(Object) looks as the type and dimesioning + of the argument and tries to guess the best fit for corrsponding lua scalar, + table, or table of tables. +

+ +

+

+
See Also:
coerce(Object), +LuajavaLib
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
CoerceJavaToLua() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+static LuaValuecoerce(java.lang.Object o) + +
+          Coerse a Java object to a corresponding lua value.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+CoerceJavaToLua

+
+public CoerceJavaToLua()
+
+
+ + + + + + + + +
+Method Detail
+ +

+coerce

+
+public static LuaValue coerce(java.lang.Object o)
+
+
Coerse a Java object to a corresponding lua value. +

+ Integral types boolean, byte, char, and int + will become LuaInteger; + long, float, and double will become LuaDouble; + String and byte[] will become LuaString; + types inheriting from LuaValue will be returned without coercion; + other types will become LuaUserdata. +

+

+
Parameters:
o - Java object needing conversion +
Returns:
LuaValue corresponding to the supplied Java value.
See Also:
LuaValue, +LuaInteger, +LuaDouble, +LuaString, +LuaUserdata
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceLuaToJava.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceLuaToJava.html new file mode 100644 index 000000000..ff213bbe1 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/CoerceLuaToJava.html @@ -0,0 +1,285 @@ + + + + + + +CoerceLuaToJava (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class CoerceLuaToJava

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.jse.CoerceLuaToJava
+
+
+
+
public class CoerceLuaToJava
extends java.lang.Object
+ + +

+Helper class to coerce values from lua to Java within the luajava library. +

+ This class is primarily used by the LuajavaLib, + but can also be used directly when working with Java/lua bindings. +

+ To coerce to specific Java values, generally the toType() methods + on LuaValue may be used: +

+

+ For data in lua tables, the various methods on LuaTable can be used directly + to convert data to something more useful. +

+ +

+

+
See Also:
LuajavaLib, +CoerceJavaToLua
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
CoerceLuaToJava() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+static java.lang.Objectcoerce(LuaValue value, + java.lang.Class clazz) + +
+          Coerce a LuaValue value to a specified java class
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+CoerceLuaToJava

+
+public CoerceLuaToJava()
+
+
+ + + + + + + + +
+Method Detail
+ +

+coerce

+
+public static java.lang.Object coerce(LuaValue value,
+                                      java.lang.Class clazz)
+
+
Coerce a LuaValue value to a specified java class +

+

+
Parameters:
value - LuaValue to coerce
clazz - Class to coerce into +
Returns:
Object of type clazz (or a subclass) with the corresponding value.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseBaseLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseBaseLib.html new file mode 100644 index 000000000..7549a4b01 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseBaseLib.html @@ -0,0 +1,438 @@ + + + + + + +JseBaseLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JseBaseLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.BaseLib
+                          extended by org.luaj.vm2.lib.jse.JseBaseLib
+
+
+
All Implemented Interfaces:
ResourceFinder
+
+
+
+
public class JseBaseLib
extends BaseLib
+ + +

+Subclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder. +

+ Since JME has no file system by default, BaseLib implements + ResourceFinder using Class.getResource(String). + The JseBaseLib implements Globals.finder by scanning the current directory + first, then falling back to Class.getResource(String) if that fails. + Otherwise, the behavior is the same as that of BaseLib. +

+ Typically, this library is included as part of a call to + JsePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ globals.get("print").call(LuaValue.valueOf("hello, world"));
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.get("print").call(LuaValue.valueOf("hello, world"));
+  
+

However, other libraries such as PackageLib are not loaded in this case. +

+ This is a direct port of the corresponding library in C. +

+ +

+

+
See Also:
Globals, +BaseLib, +ResourceFinder, +Globals.finder, +LibFunction, +JsePlatform, +JmePlatform, +Lua 5.2 Base Lib Reference
+
+ +

+ + + + + + + +
+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
JseBaseLib() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ java.io.InputStreamfindResource(java.lang.String filename) + +
+          Try to open a file in the current working directory, + or fall back to base opener if not found.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.BaseLib
loadFile, loadStream
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+JseBaseLib

+
+public JseBaseLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

Specifically, extend the library loading to set the default value for Globals.STDIN +

+

+
Overrides:
call in class BaseLib
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+
+ +

+findResource

+
+public java.io.InputStream findResource(java.lang.String filename)
+
+
Try to open a file in the current working directory, + or fall back to base opener if not found. + + This implementation attempts to open the file using new File(filename). + It falls back to the base implementation that looks it up as a resource + in the class path if not found as a plain file. +

+

+
Specified by:
findResource in interface ResourceFinder
Overrides:
findResource in class BaseLib
+
+
+
Parameters:
filename - +
Returns:
InputStream, or null if not found.
See Also:
BaseLib, +ResourceFinder
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseIoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseIoLib.html new file mode 100644 index 000000000..14c9dd49c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseIoLib.html @@ -0,0 +1,574 @@ + + + + + + +JseIoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JseIoLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.IoLib
+                          extended by org.luaj.vm2.lib.jse.JseIoLib
+
+
+
+
public class JseIoLib
extends IoLib
+ + +

+Subclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform. +

+ It uses RandomAccessFile to implement seek on files. +

+ Typically, this library is included as part of a call to + JsePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new JseIoLib());
+ globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
+  
+

However, other libraries such as MathLib are not loaded in this case. +

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +IoLib, +JmeIoLib, +Lua 5.2 I/O Lib Reference
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.luaj.vm2.lib.IoLib
IoLib.File
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.luaj.vm2.lib.IoLib
FILE_NAMES, FTYPE_NAMED, FTYPE_STDERR, FTYPE_STDIN, FTYPE_STDOUT, globals, IO_NAMES
+ + + + + + + +
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
JseIoLib() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  IoLib.FileopenFile(java.lang.String filename, + boolean readMode, + boolean appendMode, + boolean updateMode, + boolean binaryMode) + +
+          Open a file in a particular mode.
+protected  IoLib.FileopenProgram(java.lang.String prog, + java.lang.String mode) + +
+          Start a new process and return a file for input or output
+protected  IoLib.FiletmpFile() + +
+          Open a temporary file.
+protected  IoLib.FilewrapStderr() + +
+          Wrap the standard error output.
+protected  IoLib.FilewrapStdin() + +
+          Wrap the standard input.
+protected  IoLib.FilewrapStdout() + +
+          Wrap the standard output.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.IoLib
_file_close, _file_flush, _file_lines, _file_read, _file_seek, _file_setvbuf, _file_write, _io_close, _io_flush, _io_index, _io_input, _io_lines, _io_open, _io_output, _io_popen, _io_read, _io_tmpfile, _io_type, _io_write, _lines_iter, call, freadall, freadbytes, freadline, freadnumber, freaduntil
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+JseIoLib

+
+public JseIoLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+wrapStdin

+
+protected IoLib.File wrapStdin()
+                        throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard input. +

+

+
Specified by:
wrapStdin in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStdout

+
+protected IoLib.File wrapStdout()
+                         throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard output. +

+

+
Specified by:
wrapStdout in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+wrapStderr

+
+protected IoLib.File wrapStderr()
+                         throws java.io.IOException
+
+
Description copied from class: IoLib
+
Wrap the standard error output. +

+

+
Specified by:
wrapStderr in class IoLib
+
+
+ +
Returns:
File +
Throws: +
java.io.IOException
+
+
+
+ +

+openFile

+
+protected IoLib.File openFile(java.lang.String filename,
+                              boolean readMode,
+                              boolean appendMode,
+                              boolean updateMode,
+                              boolean binaryMode)
+                       throws java.io.IOException
+
+
Description copied from class: IoLib
+
Open a file in a particular mode. +

+

+
Specified by:
openFile in class IoLib
+
+
+
readMode - true if opening in read mode
appendMode - true if opening in append mode
updateMode - true if opening in update mode
binaryMode - true if opening in binary mode +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+
+ +

+openProgram

+
+protected IoLib.File openProgram(java.lang.String prog,
+                                 java.lang.String mode)
+                          throws java.io.IOException
+
+
Description copied from class: IoLib
+
Start a new process and return a file for input or output +

+

+
Specified by:
openProgram in class IoLib
+
+
+
Parameters:
prog - the program to execute
mode - "r" to read, "w" to write +
Returns:
File to read to or write from +
Throws: +
java.io.IOException - if an i/o exception occurs
+
+
+
+ +

+tmpFile

+
+protected IoLib.File tmpFile()
+                      throws java.io.IOException
+
+
Description copied from class: IoLib
+
Open a temporary file. +

+

+
Specified by:
tmpFile in class IoLib
+
+
+ +
Returns:
File object if successful +
Throws: +
java.io.IOException - if could not be opened
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseMathLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseMathLib.html new file mode 100644 index 000000000..ae4d0df59 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseMathLib.html @@ -0,0 +1,454 @@ + + + + + + +JseMathLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JseMathLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.MathLib
+                          extended by org.luaj.vm2.lib.jse.JseMathLib
+
+
+
+
public class JseMathLib
extends MathLib
+ + +

+Subclass of LibFunction which implements the lua standard math + library. +

+ It contains all lua math functions, including those not available on the JME platform. + See MathLib for the exception list. +

+ Typically, this library is included as part of a call to + JsePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new JseMathLib());
+ System.out.println( globals.get("math").get("sqrt").call( LuaValue.valueOf(2) ) );
+  
+

However, other libraries such as CoroutineLib are not loaded in this case. +

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +JseMathLib, +Lua 5.2 Math Lib Reference
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.luaj.vm2.lib.MathLib
MathLib.BinaryOp, MathLib.UnaryOp
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.luaj.vm2.lib.MathLib
MATHLIB
+ + + + + + + +
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
JseMathLib() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ LuaValuecall(LuaValue modname, + LuaValue env) + +
+          Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value.
+ doubledpow_lib(double a, + double b) + +
+          Faster, better version of pow() used by arithmetic operator ^
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.MathLib
dpow_d, dpow_default, dpow
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+ +

+JseMathLib

+
+public JseMathLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+call

+
+public LuaValue call(LuaValue modname,
+                     LuaValue env)
+
+
Perform one-time initialization on the library by creating a table + containing the library functions, adding that table to the supplied environment, + adding the table to package.loaded, and returning table as the return value. +

Specifically, adds all library functions that can be implemented directly + in JSE but not JME: acos, asin, atan, atan2, cosh, exp, log, pow, sinh, and tanh. +

+

+
Overrides:
call in class MathLib
+
+
+
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, which must be a Globals instance. +
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)
+
+
+
+ +

+dpow_lib

+
+public double dpow_lib(double a,
+                       double b)
+
+
Faster, better version of pow() used by arithmetic operator ^ +

+

+
Overrides:
dpow_lib in class MathLib
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseOsLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseOsLib.html new file mode 100644 index 000000000..2ef130775 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseOsLib.html @@ -0,0 +1,614 @@ + + + + + + +JseOsLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JseOsLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.TwoArgFunction
+                      extended by org.luaj.vm2.lib.OsLib
+                          extended by org.luaj.vm2.lib.jse.JseOsLib
+
+
+
+
public class JseOsLib
extends OsLib
+ + +

+Subclass of LibFunction which implements the standard lua os library. +

+ This contains more complete implementations of the following functions + using features that are specific to JSE: +

    +
  • execute()
  • +
  • remove()
  • +
  • rename()
  • +
  • tmpname()
  • +
+

+ Because the nature of the os library is to encapsulate + os-specific features, the behavior of these functions varies considerably + from their counterparts in the C platform. +

+ Typically, this library is included as part of a call to + JsePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("os").get("time").call() );
+  
+

+ For special cases where the smallest possible footprint is desired, + a minimal set of libraries could be loaded + directly via LuaValue.load(LuaValue) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new JseOsLib());
+ System.out.println( globals.get("os").get("time").call() );
+  
+

However, other libraries such as MathLib are not loaded in this case. +

+

+ +

+

+
See Also:
LibFunction, +OsLib, +JsePlatform, +JmePlatform, +Lua 5.2 OS Lib Reference
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Field Summary
+static intEXEC_ERROR + +
+          return code indicating the execute() threw an unknown exception
+static intEXEC_INTERRUPTED + +
+          return code indicating the execute() was interrupted
+static intEXEC_IOEXCEPTION + +
+          return code indicating the execute() threw an I/O exception
+ + + + + + + +
Fields inherited from class org.luaj.vm2.lib.OsLib
globals, TMP_PREFIX, TMP_SUFFIX
+ + + + + + + +
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
JseOsLib() + +
+          public constructor
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  Varargsexecute(java.lang.String command) + +
+          This function is equivalent to the C function system.
+protected  java.lang.Stringgetenv(java.lang.String varname) + +
+          Returns the value of the process environment variable varname, + or the System property value for varname, + or null if the variable is not defined in either environment.
+protected  voidremove(java.lang.String filename) + +
+          Deletes the file or directory with the given name.
+protected  voidrename(java.lang.String oldname, + java.lang.String newname) + +
+          Renames file or directory named oldname to newname.
+protected  java.lang.Stringtmpname() + +
+          Returns a string with a file name that can be used for a temporary file.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.OsLib
call, clock, date, difftime, exit, setlocale, time
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
+ + + + + + + +
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
+  +

+ + + + + + + + +
+Field Detail
+ +

+EXEC_IOEXCEPTION

+
+public static int EXEC_IOEXCEPTION
+
+
return code indicating the execute() threw an I/O exception +

+

+
+
+
+ +

+EXEC_INTERRUPTED

+
+public static int EXEC_INTERRUPTED
+
+
return code indicating the execute() was interrupted +

+

+
+
+
+ +

+EXEC_ERROR

+
+public static int EXEC_ERROR
+
+
return code indicating the execute() threw an unknown exception +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+JseOsLib

+
+public JseOsLib()
+
+
public constructor +

+

+ + + + + + + + +
+Method Detail
+ +

+getenv

+
+protected java.lang.String getenv(java.lang.String varname)
+
+
Description copied from class: OsLib
+
Returns the value of the process environment variable varname, + or the System property value for varname, + or null if the variable is not defined in either environment. + + The default implementation, which is used by the JmePlatform, + only queryies System.getProperty(). + + The JsePlatform overrides this behavior and returns the + environment variable value using System.getenv() if it exists, + or the System property value if it does not. + + A SecurityException may be thrown if access is not allowed + for 'varname'. +

+

+
Overrides:
getenv in class OsLib
+
+
+ +
Returns:
String value, or null if not defined
+
+
+
+ +

+execute

+
+protected Varargs execute(java.lang.String command)
+
+
Description copied from class: OsLib
+
This function is equivalent to the C function system. + It passes command to be executed by an operating system shell. + It returns a status code, which is system-dependent. + If command is absent, then it returns nonzero if a shell + is available and zero otherwise. +

+

+
Overrides:
execute in class OsLib
+
+
+
Parameters:
command - command to pass to the system
+
+
+
+ +

+remove

+
+protected void remove(java.lang.String filename)
+               throws java.io.IOException
+
+
Description copied from class: OsLib
+
Deletes the file or directory with the given name. + Directories must be empty to be removed. + If this function fails, it throws and IOException +

+

+
Overrides:
remove in class OsLib
+
+
+ +
Throws: +
java.io.IOException - if it fails
+
+
+
+ +

+rename

+
+protected void rename(java.lang.String oldname,
+                      java.lang.String newname)
+               throws java.io.IOException
+
+
Description copied from class: OsLib
+
Renames file or directory named oldname to newname. + If this function fails,it throws and IOException +

+

+
Overrides:
rename in class OsLib
+
+
+
Parameters:
oldname - old file name
newname - new file name +
Throws: +
java.io.IOException - if it fails
+
+
+
+ +

+tmpname

+
+protected java.lang.String tmpname()
+
+
Description copied from class: OsLib
+
Returns a string with a file name that can be used for a temporary file. + The file must be explicitly opened before its use and explicitly removed + when no longer needed. + + On some systems (POSIX), this function also creates a file with that name, + to avoid security risks. (Someone else might create the file with wrong + permissions in the time between getting the name and creating the file.) + You still have to open the file to use it and to remove it (even if you + do not use it). +

+

+
Overrides:
tmpname in class OsLib
+
+
+ +
Returns:
String filename to use
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JsePlatform.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JsePlatform.html new file mode 100644 index 000000000..817c4f01a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JsePlatform.html @@ -0,0 +1,353 @@ + + + + + + +JsePlatform (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JsePlatform

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.jse.JsePlatform
+
+
+
+
public class JsePlatform
extends java.lang.Object
+ + +

+The JsePlatform class is a convenience class to standardize + how globals tables are initialized for the JSE platform. +

+ It is used to allocate either a set of standard globals using + standardGlobals() or debug globals using debugGlobals() +

+ A simple example of initializing globals and using them from Java is: +

 Globals globals = JsePlatform.standardGlobals();
+ globals.get("print").call(LuaValue.valueOf("hello, world"));
+  
+

+ Once globals are created, a simple way to load and run a script is: +

 globals.load( new FileInputStream("main.lua"), "main.lua" ).call();
+  
+

+ although require could also be used: +

 globals.get("require").call(LuaValue.valueOf("main"));
+  
+ For this to succeed, the file "main.lua" must be in the current directory or a resource. + See JseBaseLib for details on finding scripts using ResourceFinder. +

+ The standard globals will contain all standard libraries plus luajava: +

+ In addition, the LuaC compiler is installed so lua files may be loaded in their source form. +

+ The debug globals are simply the standard globals plus the debug library DebugLib. +

+ The class ensures that initialization is done in the correct order. +

+ +

+

+
See Also:
Globals, +JmePlatform
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
JsePlatform() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static GlobalsdebugGlobals() + +
+          Create standard globals including the DebugLib library.
+static voidluaMain(LuaValue mainChunk, + java.lang.String[] args) + +
+          Simple wrapper for invoking a lua function with command line arguments.
+static GlobalsstandardGlobals() + +
+          Create a standard set of globals for JSE including all the libraries.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+JsePlatform

+
+public JsePlatform()
+
+
+ + + + + + + + +
+Method Detail
+ +

+standardGlobals

+
+public static Globals standardGlobals()
+
+
Create a standard set of globals for JSE including all the libraries. +

+

+ +
Returns:
Table of globals initialized with the standard JSE libraries
See Also:
debugGlobals(), +JsePlatform, +JmePlatform
+
+
+
+ +

+debugGlobals

+
+public static Globals debugGlobals()
+
+
Create standard globals including the DebugLib library. +

+

+ +
Returns:
Table of globals initialized with the standard JSE and debug libraries
See Also:
standardGlobals(), +JsePlatform, +JmePlatform, +DebugLib
+
+
+
+ +

+luaMain

+
+public static void luaMain(LuaValue mainChunk,
+                           java.lang.String[] args)
+
+
Simple wrapper for invoking a lua function with command line arguments. + The supplied function is first given a new Globals object, + then the program is run with arguments. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseProcess.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseProcess.html new file mode 100644 index 000000000..9212ed939 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/JseProcess.html @@ -0,0 +1,323 @@ + + + + + + +JseProcess (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class JseProcess

+
+java.lang.Object
+  extended by org.luaj.vm2.lib.jse.JseProcess
+
+
+
+
public class JseProcess
extends java.lang.Object
+ + +

+Analog of Process that pipes input and output to client-specified streams. +

+ +

+


+ +

+ + + + + + + + + + + + + + +
+Constructor Summary
JseProcess(java.lang.String[] cmd, + java.io.InputStream stdin, + java.io.OutputStream stdout, + java.io.OutputStream stderr) + +
+          Construct a process around a command, with specified streams to redirect input and output to.
JseProcess(java.lang.String cmd, + java.io.InputStream stdin, + java.io.OutputStream stdout, + java.io.OutputStream stderr) + +
+          Construct a process around a command, with specified streams to redirect input and output to.
+  + + + + + + + + + + + + + + + +
+Method Summary
+ intexitValue() + +
+          Get the exit value of the process.
+ intwaitFor() + +
+          Wait for the process to complete, and all pending output to finish.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+JseProcess

+
+public JseProcess(java.lang.String[] cmd,
+                  java.io.InputStream stdin,
+                  java.io.OutputStream stdout,
+                  java.io.OutputStream stderr)
+           throws java.io.IOException
+
+
Construct a process around a command, with specified streams to redirect input and output to. +

+

+
Parameters:
cmd - The command to execute, including arguments, if any
stdin - Optional InputStream to read from as process input, or null if input is not needed.
stdout - Optional OutputStream to copy process output to, or null if output is ignored.
stderr - Optinoal OutputStream to copy process stderr output to, or null if output is ignored. +
Throws: +
java.io.IOException - If the system process could not be created.
See Also:
Process
+
+
+ +

+JseProcess

+
+public JseProcess(java.lang.String cmd,
+                  java.io.InputStream stdin,
+                  java.io.OutputStream stdout,
+                  java.io.OutputStream stderr)
+           throws java.io.IOException
+
+
Construct a process around a command, with specified streams to redirect input and output to. +

+

+
Parameters:
cmd - The command to execute, including arguments, if any
stdin - Optional InputStream to read from as process input, or null if input is not needed.
stdout - Optional OutputStream to copy process output to, or null if output is ignored.
stderr - Optinoal OutputStream to copy process stderr output to, or null if output is ignored. +
Throws: +
java.io.IOException - If the system process could not be created.
See Also:
Process
+
+ + + + + + + + +
+Method Detail
+ +

+exitValue

+
+public int exitValue()
+
+
Get the exit value of the process. +

+

+
+
+
+
+ +

+waitFor

+
+public int waitFor()
+            throws java.lang.InterruptedException
+
+
Wait for the process to complete, and all pending output to finish. +

+

+ +
Returns:
The exit status. +
Throws: +
java.lang.InterruptedException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/LuajavaLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/LuajavaLib.html new file mode 100644 index 000000000..d396edfb7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/LuajavaLib.html @@ -0,0 +1,418 @@ + + + + + + +LuajavaLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.lib.jse +
+Class LuajavaLib

+
+java.lang.Object
+  extended by org.luaj.vm2.Varargs
+      extended by org.luaj.vm2.LuaValue
+          extended by org.luaj.vm2.LuaFunction
+              extended by org.luaj.vm2.lib.LibFunction
+                  extended by org.luaj.vm2.lib.VarArgFunction
+                      extended by org.luaj.vm2.lib.jse.LuajavaLib
+
+
+
+
public class LuajavaLib
extends VarArgFunction
+ + +

+Subclass of LibFunction which implements the features of the luajava package. +

+ Luajava is an approach to mixing lua and java using simple functions that bind + java classes and methods to lua dynamically. The API is documented on the + luajava documentation pages. + +

+ Typically, this library is included as part of a call to + JsePlatform.standardGlobals() +

 Globals globals = JsePlatform.standardGlobals();
+ System.out.println( globals.get("luajava").get("bindClass").call( LuaValue.valueOf("java.lang.System") ).invokeMethod("currentTimeMillis") );
+  
+

+ To instantiate and use it directly, + link it into your globals table via Globals.load(java.lang.String, java.lang.String) using code such as: +

 Globals globals = new Globals();
+ globals.load(new JseBaseLib());
+ globals.load(new PackageLib());
+ globals.load(new LuajavaLib());
+ globals.load( 
+      "sys = luajava.bindClass('java.lang.System')\n"+
+      "print ( sys:currentTimeMillis() )\n", "main.lua" ).call(); 
+  
+

+ + The luajava library is available + on all JSE platforms via the call to JsePlatform.standardGlobals() + and the luajava api's are simply invoked from lua. + Because it makes extensive use of Java's reflection API, it is not available + on JME, but can be used in Android applications. +

+ This has been implemented to match as closely as possible the behavior in the corresponding library in C. +

+ +

+

+
See Also:
LibFunction, +JsePlatform, +JmePlatform, +LuaC, +CoerceJavaToLua, +CoerceLuaToJava, +http://www.keplerproject.org/luajava/manual.html#luareference
+
+ +

+ + + + + + + +
+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
LuajavaLib() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ClassclassForName(java.lang.String name) + +
+           
+ Varargsinvoke(Varargs args) + +
+          Subclass responsibility.
+ + + + + + + +
Methods inherited from class org.luaj.vm2.lib.VarArgFunction
call, call, call, call, onInvoke
+ + + + + + + +
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, 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
+ +

+LuajavaLib

+
+public LuajavaLib()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public Varargs invoke(Varargs args)
+
+
Description copied from class: VarArgFunction
+
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 class VarArgFunction
+
+
+
Parameters:
args - the arguments to the function call. +
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)
+
+
+
+ +

+classForName

+
+protected java.lang.Class classForName(java.lang.String name)
+                                throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceJavaToLua.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceJavaToLua.html new file mode 100644 index 000000000..aeef7dae5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceJavaToLua.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.CoerceJavaToLua (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.CoerceJavaToLua

+
+No usage of org.luaj.vm2.lib.jse.CoerceJavaToLua +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceLuaToJava.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceLuaToJava.html new file mode 100644 index 000000000..ee8178e1c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/CoerceLuaToJava.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.CoerceLuaToJava (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.CoerceLuaToJava

+
+No usage of org.luaj.vm2.lib.jse.CoerceLuaToJava +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseBaseLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseBaseLib.html new file mode 100644 index 000000000..43d38c006 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseBaseLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JseBaseLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JseBaseLib

+
+No usage of org.luaj.vm2.lib.jse.JseBaseLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseIoLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseIoLib.html new file mode 100644 index 000000000..152aeb5ed --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseIoLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JseIoLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JseIoLib

+
+No usage of org.luaj.vm2.lib.jse.JseIoLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseMathLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseMathLib.html new file mode 100644 index 000000000..b3d6c74ef --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseMathLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JseMathLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JseMathLib

+
+No usage of org.luaj.vm2.lib.jse.JseMathLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseOsLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseOsLib.html new file mode 100644 index 000000000..b8cc64cde --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseOsLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JseOsLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JseOsLib

+
+No usage of org.luaj.vm2.lib.jse.JseOsLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JsePlatform.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JsePlatform.html new file mode 100644 index 000000000..8beb5aae6 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JsePlatform.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JsePlatform (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JsePlatform

+
+No usage of org.luaj.vm2.lib.jse.JsePlatform +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseProcess.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseProcess.html new file mode 100644 index 000000000..65cdefb2e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/JseProcess.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.JseProcess (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.JseProcess

+
+No usage of org.luaj.vm2.lib.jse.JseProcess +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/LuajavaLib.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/LuajavaLib.html new file mode 100644 index 000000000..1a73c7e6a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/class-use/LuajavaLib.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.lib.jse.LuajavaLib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.lib.jse.LuajavaLib

+
+No usage of org.luaj.vm2.lib.jse.LuajavaLib +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-frame.html new file mode 100644 index 000000000..49b66c47b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-frame.html @@ -0,0 +1,48 @@ + + + + + + +org.luaj.vm2.lib.jse (Luaj API) + + + + + + + + + + + +org.luaj.vm2.lib.jse + + + + +
+Classes  + +
+CoerceJavaToLua +
+CoerceLuaToJava +
+JseBaseLib +
+JseIoLib +
+JseMathLib +
+JseOsLib +
+JsePlatform +
+JseProcess +
+LuajavaLib
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-summary.html new file mode 100644 index 000000000..15a8c10ea --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-summary.html @@ -0,0 +1,193 @@ + + + + + + +org.luaj.vm2.lib.jse (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.lib.jse +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
CoerceJavaToLuaHelper class to coerce values from Java to lua within the luajava library.
CoerceLuaToJavaHelper class to coerce values from lua to Java within the luajava library.
JseBaseLibSubclass of BaseLib and LibFunction which implements the lua basic library functions + and provides a directory based ResourceFinder as the Globals.finder.
JseIoLibSubclass of IoLib and therefore LibFunction which implements the lua standard io + library for the JSE platform.
JseMathLibSubclass of LibFunction which implements the lua standard math + library.
JseOsLibSubclass of LibFunction which implements the standard lua os library.
JsePlatformThe JsePlatform class is a convenience class to standardize + how globals tables are initialized for the JSE platform.
JseProcessAnalog of Process that pipes input and output to client-specified streams.
LuajavaLibSubclass of LibFunction which implements the features of the luajava package.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-tree.html new file mode 100644 index 000000000..d7db1fe3e --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-tree.html @@ -0,0 +1,174 @@ + + + + + + +org.luaj.vm2.lib.jse Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.lib.jse +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-use.html new file mode 100644 index 000000000..3fe3b1878 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/jse/package-use.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Package org.luaj.vm2.lib.jse (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.lib.jse

+
+No usage of org.luaj.vm2.lib.jse +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-frame.html new file mode 100644 index 000000000..db890c5d8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-frame.html @@ -0,0 +1,81 @@ + + + + + + +org.luaj.vm2.lib (Luaj API) + + + + + + + + + + + +org.luaj.vm2.lib + + + + +
+Interfaces  + +
+ResourceFinder
+ + + + + + +
+Classes  + +
+BaseLib +
+Bit32Lib +
+CoroutineLib +
+DebugLib +
+DebugLib.CallStack +
+IoLib +
+LibFunction +
+MathLib +
+MathLib.BinaryOp +
+MathLib.UnaryOp +
+OneArgFunction +
+OsLib +
+PackageLib +
+PackageLib.loadlib +
+StringLib +
+TableLib +
+ThreeArgFunction +
+TwoArgFunction +
+VarArgFunction +
+ZeroArgFunction
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-summary.html new file mode 100644 index 000000000..79c5b8f87 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-summary.html @@ -0,0 +1,259 @@ + + + + + + +org.luaj.vm2.lib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.lib +

+ + + + + + + + + +
+Interface Summary
ResourceFinderInterface for opening application resource files such as scripts sources.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
BaseLibSubclass of LibFunction which implements the lua basic library functions.
Bit32LibSubclass of LibFunction that implements the Lua standard bit32 library.
CoroutineLibSubclass of LibFunction which implements the lua standard coroutine + library.
DebugLibSubclass of LibFunction which implements the lua standard debug + library.
DebugLib.CallStack 
IoLibAbstract base class extending LibFunction which implements the + core of the lua standard io library.
LibFunctionSubclass of LuaFunction common to Java functions exposed to lua.
MathLibSubclass of LibFunction which implements the lua standard math + library.
MathLib.BinaryOp 
MathLib.UnaryOp 
OneArgFunctionAbstract base class for Java function implementations that take one argument and + return one value.
OsLibSubclass of LibFunction which implements the standard lua os library.
PackageLibSubclass of LibFunction which implements the lua standard package and module + library functions.
PackageLib.loadlib 
StringLibSubclass of LibFunction which implements the lua standard string + library.
TableLibSubclass of LibFunction which implements the lua standard table + library.
ThreeArgFunctionAbstract base class for Java function implementations that take two arguments and + return one value.
TwoArgFunctionAbstract base class for Java function implementations that take two arguments and + return one value.
VarArgFunctionAbstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
ZeroArgFunctionAbstract base class for Java function implementations that take no arguments and + return one value.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-tree.html new file mode 100644 index 000000000..365d72d23 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-tree.html @@ -0,0 +1,173 @@ + + + + + + +org.luaj.vm2.lib Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.lib +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-use.html new file mode 100644 index 000000000..4e0ecba09 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/lib/package-use.html @@ -0,0 +1,377 @@ + + + + + + +Uses of Package org.luaj.vm2.lib (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.lib

+
+ + + + + + + + + + + + + + + + + + + + + +
+Packages that use org.luaj.vm2.lib
org.luaj.vm2  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
+  +

+ + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2.lib used by org.luaj.vm2
BaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
DebugLib + +
+          Subclass of LibFunction which implements the lua standard debug + library.
PackageLib + +
+          Subclass of LibFunction which implements the lua standard package and module + library functions.
ResourceFinder + +
+          Interface for opening application resource files such as scripts sources.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2.lib used by org.luaj.vm2.lib
IoLib.File + +
+           
LibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
MathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
OneArgFunction + +
+          Abstract base class for Java function implementations that take one argument and + return one value.
PackageLib.java_searcher + +
+           
PackageLib.lua_searcher + +
+           
PackageLib.preload_searcher + +
+           
ResourceFinder + +
+          Interface for opening application resource files such as scripts sources.
TwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
VarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+  +

+ + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2.lib used by org.luaj.vm2.lib.jme
IoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
IoLib.File + +
+           
LibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
TwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2.lib used by org.luaj.vm2.lib.jse
BaseLib + +
+          Subclass of LibFunction which implements the lua basic library functions.
IoLib + +
+          Abstract base class extending LibFunction which implements the + core of the lua standard io library.
IoLib.File + +
+           
LibFunction + +
+          Subclass of LuaFunction common to Java functions exposed to lua.
MathLib + +
+          Subclass of LibFunction which implements the lua standard math + library.
OsLib + +
+          Subclass of LibFunction which implements the standard lua os library.
ResourceFinder + +
+          Interface for opening application resource files such as scripts sources.
TwoArgFunction + +
+          Abstract base class for Java function implementations that take two arguments and + return one value.
VarArgFunction + +
+          Abstract base class for Java function implementations that takes varaiable arguments and + returns multiple return values.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/LuaJC.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/LuaJC.html new file mode 100644 index 000000000..5539ee32f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/LuaJC.html @@ -0,0 +1,426 @@ + + + + + + +LuaJC (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.luajc +
+Class LuaJC

+
+java.lang.Object
+  extended by org.luaj.vm2.luajc.LuaJC
+
+
+
All Implemented Interfaces:
Globals.Loader
+
+
+
+
public class LuaJC
extends java.lang.Object
implements Globals.Loader
+ + +

+Implementation of Globals.Compiler which does direct + lua-to-java-bytecode compiling. +

+ By default, when using JsePlatform or + JmePlatform + to construct globals, the plain compiler LuaC is installed and lua code + will only be compiled into lua bytecode and execute as LuaClosure. +

+ To override the default compiling behavior with LuaJC + lua-to-java bytecode compiler, install it before undumping code, + for example: +

 LuaValue globals = JsePlatform.standardGlobals();
+ LuaJC.install(globals);
+ LuaValue chunk = globals.load( "print('hello, world'), "main.lua");
+ System.out.println(chunk.isclosure());  // Will be false when LuaJC is working.
+ chunk.call();
+  
+

+ This requires the bcel library to be on the class path to work as expected. + If the library is not found, the default LuaC lua-to-lua-bytecode + compiler will be used. +

+ +

+

+
See Also:
Globals.compiler, +install(Globals), +LuaC, +LuaValue
+
+ +

+ + + + + + + + + + + +
+Field Summary
+static LuaJCinstance + +
+           
+  + + + + + + + + + + + +
+Constructor Summary
+protected LuaJC() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.HashtablecompileAll(java.io.InputStream script, + java.lang.String chunkname, + java.lang.String filename, + Globals globals, + boolean genmain) + +
+           
+ java.util.HashtablecompileAll(java.io.Reader script, + java.lang.String chunkname, + java.lang.String filename, + Globals globals, + boolean genmain) + +
+           
+static voidinstall(Globals G) + +
+          Install the compiler as the main Globals.Loader to use in a set of globals.
+ LuaFunctionload(Prototype p, + java.lang.String name, + LuaValue globals) + +
+          Convert the prototype into a LuaFunction with the supplied environment.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+instance

+
+public static final LuaJC instance
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+LuaJC

+
+protected LuaJC()
+
+
+ + + + + + + + +
+Method Detail
+ +

+install

+
+public static final void install(Globals G)
+
+
Install the compiler as the main Globals.Loader to use in a set of globals. + Will fall back to the LuaC prototype compiler. +

+

+
+
+
+
+
+
+
+ +

+compileAll

+
+public java.util.Hashtable compileAll(java.io.InputStream script,
+                                      java.lang.String chunkname,
+                                      java.lang.String filename,
+                                      Globals globals,
+                                      boolean genmain)
+                               throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+compileAll

+
+public java.util.Hashtable compileAll(java.io.Reader script,
+                                      java.lang.String chunkname,
+                                      java.lang.String filename,
+                                      Globals globals,
+                                      boolean genmain)
+                               throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+load

+
+public LuaFunction load(Prototype p,
+                        java.lang.String name,
+                        LuaValue globals)
+                 throws java.io.IOException
+
+
Description copied from interface: Globals.Loader
+
Convert the prototype into a LuaFunction with the supplied environment. +

+

+
Specified by:
load in interface Globals.Loader
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/class-use/LuaJC.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/class-use/LuaJC.html new file mode 100644 index 000000000..f736dface --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/class-use/LuaJC.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class org.luaj.vm2.luajc.LuaJC (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.luajc.LuaJC

+
+ + + + + + + + + +
+Packages that use LuaJC
org.luaj.vm2.luajc  
+  +

+ + + + + +
+Uses of LuaJC in org.luaj.vm2.luajc
+  +

+ + + + + + + + + +
Fields in org.luaj.vm2.luajc declared as LuaJC
+static LuaJCLuaJC.instance + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-frame.html new file mode 100644 index 000000000..c1ec579ca --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.luaj.vm2.luajc (Luaj API) + + + + + + + + + + + +org.luaj.vm2.luajc + + + + +
+Classes  + +
+LuaJC
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-summary.html new file mode 100644 index 000000000..6b3d32937 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-summary.html @@ -0,0 +1,158 @@ + + + + + + +org.luaj.vm2.luajc (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.luajc +

+ + + + + + + + + +
+Class Summary
LuaJCImplementation of Globals.Compiler which does direct + lua-to-java-bytecode compiling.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-tree.html new file mode 100644 index 000000000..c793238d5 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-tree.html @@ -0,0 +1,154 @@ + + + + + + +org.luaj.vm2.luajc Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.luajc +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-use.html new file mode 100644 index 000000000..56b46f78d --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/luajc/package-use.html @@ -0,0 +1,171 @@ + + + + + + +Uses of Package org.luaj.vm2.luajc (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.luajc

+
+ + + + + + + + + +
+Packages that use org.luaj.vm2.luajc
org.luaj.vm2.luajc  
+  +

+ + + + + + + + +
+Classes in org.luaj.vm2.luajc used by org.luaj.vm2.luajc
LuaJC + +
+          Implementation of Globals.Compiler which does direct + lua-to-java-bytecode compiling.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-frame.html new file mode 100644 index 000000000..0bfedf8da --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-frame.html @@ -0,0 +1,119 @@ + + + + + + +org.luaj.vm2 (Luaj API) + + + + + + + + + + + +org.luaj.vm2 + + + + +
+Interfaces  + +
+Globals.Compiler +
+Globals.Loader +
+Globals.Undumper
+ + + + + + +
+Classes  + +
+Buffer +
+Globals +
+LoadState +
+LocVars +
+Lua +
+LuaBoolean +
+LuaClosure +
+LuaDouble +
+LuaFunction +
+LuaInteger +
+LuaNil +
+LuaNumber +
+LuaString +
+LuaTable +
+LuaThread +
+LuaThread.State +
+LuaUserdata +
+LuaValue +
+Print +
+Prototype +
+TailcallVarargs +
+Upvaldesc +
+UpValue +
+Varargs +
+WeakTable +
+WeakTable.WeakSlot
+ + + + + + +
+Exceptions  + +
+LuaError
+ + + + + + +
+Errors  + +
+OrphanedThread
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-summary.html new file mode 100644 index 000000000..1cd90adf6 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-summary.html @@ -0,0 +1,311 @@ + + + + + + +org.luaj.vm2 (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2 +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
Globals.CompilerInterface for module that converts lua source text into a prototype.
Globals.LoaderInterface for module that converts a Prototype into a LuaFunction with an environment.
Globals.UndumperInterface for module that loads lua binary chunk into a prototype.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
BufferString buffer for use in string library methods, optimized for production + of StrValue instances.
GlobalsGlobal environment used by luaj.
LoadStateClass to undump compiled lua bytecode into a Prototype instances.
LocVarsData class to hold debug information relating to local variables for a Prototype
LuaConstants for lua limits and opcodes.
LuaBooleanExtension of LuaValue which can hold a Java boolean as its value.
LuaClosureExtension of LuaFunction which executes lua bytecode.
LuaDoubleExtension of LuaNumber which can hold a Java double as its value.
LuaFunctionBase class for functions implemented in Java.
LuaIntegerExtension of LuaNumber which can hold a Java int as its value.
LuaNilClass to encapsulate behavior of the singleton instance nil
LuaNumberBase class for representing numbers as lua values directly.
LuaStringSubclass of LuaValue for representing lua strings.
LuaTableSubclass of LuaValue for representing lua tables.
LuaThreadSubclass of LuaValue that implements + a lua coroutine thread using Java Threads.
LuaThread.State 
LuaUserdata 
LuaValueBase class for all concrete lua type values.
PrintDebug helper class to pretty-print lua bytecodes.
PrototypePrototype representing compiled lua code.
TailcallVarargsSubclass of Varargs that represents a lua tail call + in a Java library function execution environment.
Upvaldesc 
UpValueUpvalue used with Closure formulation
VarargsClass to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
WeakTableSubclass of LuaTable that provides weak key and weak value semantics.
WeakTable.WeakSlot 
+  + +

+ + + + + + + + + +
+Exception Summary
LuaErrorRuntimeException that is thrown and caught in response to a lua error.
+  + +

+ + + + + + + + + +
+Error Summary
OrphanedThreadError sublcass that indicates a lua thread that is no + longer referenced has been detected.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-tree.html new file mode 100644 index 000000000..6810b3222 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-tree.html @@ -0,0 +1,180 @@ + + + + + + +org.luaj.vm2 Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2 +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-use.html new file mode 100644 index 000000000..962756527 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/package-use.html @@ -0,0 +1,556 @@ + + + + + + +Uses of Package org.luaj.vm2 (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use org.luaj.vm2
org.luaj.vm2  
org.luaj.vm2.compiler  
org.luaj.vm2.lib  
org.luaj.vm2.lib.jme  
org.luaj.vm2.lib.jse  
org.luaj.vm2.luajc  
org.luaj.vm2.server  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2
Buffer + +
+          String buffer for use in string library methods, optimized for production + of StrValue instances.
Globals + +
+          Global environment used by luaj.
Globals.Compiler + +
+          Interface for module that converts lua source text into a prototype.
Globals.Loader + +
+          Interface for module that converts a Prototype into a LuaFunction with an environment.
Globals.Undumper + +
+          Interface for module that loads lua binary chunk into a prototype.
LocVars + +
+          Data class to hold debug information relating to local variables for a Prototype
Lua + +
+          Constants for lua limits and opcodes.
LuaBoolean + +
+          Extension of LuaValue which can hold a Java boolean as its value.
LuaClosure + +
+          Extension of LuaFunction which executes lua bytecode.
LuaDouble + +
+          Extension of LuaNumber which can hold a Java double as its value.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaInteger + +
+          Extension of LuaNumber which can hold a Java int as its value.
LuaNumber + +
+          Base class for representing numbers as lua values directly.
LuaString + +
+          Subclass of LuaValue for representing lua strings.
LuaTable + +
+          Subclass of LuaValue for representing lua tables.
LuaThread + +
+          Subclass of LuaValue that implements + a lua coroutine thread using Java Threads.
LuaThread.State + +
+           
LuaUserdata + +
+           
LuaValue + +
+          Base class for all concrete lua type values.
Prototype + +
+          Prototype representing compiled lua code.
Upvaldesc + +
+           
UpValue + +
+          Upvalue used with Closure formulation
Varargs + +
+          Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
WeakTable.WeakSlot + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.compiler
Globals + +
+          Global environment used by luaj.
Globals.Compiler + +
+          Interface for module that converts lua source text into a prototype.
Globals.Loader + +
+          Interface for module that converts a Prototype into a LuaFunction with an environment.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaValue + +
+          Base class for all concrete lua type values.
Prototype + +
+          Prototype representing compiled lua code.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.lib
Globals + +
+          Global environment used by luaj.
LuaClosure + +
+          Extension of LuaFunction which executes lua bytecode.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaString + +
+          Subclass of LuaValue for representing lua strings.
LuaTable + +
+          Subclass of LuaValue for representing lua tables.
LuaValue + +
+          Base class for all concrete lua type values.
Prototype + +
+          Prototype representing compiled lua code.
Varargs + +
+          Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
+  +

+ + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.lib.jme
Globals + +
+          Global environment used by luaj.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaValue + +
+          Base class for all concrete lua type values.
Varargs + +
+          Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
+  +

+ + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.lib.jse
Globals + +
+          Global environment used by luaj.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaValue + +
+          Base class for all concrete lua type values.
Varargs + +
+          Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
+  +

+ + + + + + + + + + + + + + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.luajc
Globals + +
+          Global environment used by luaj.
Globals.Loader + +
+          Interface for module that converts a Prototype into a LuaFunction with an environment.
LuaFunction + +
+          Base class for functions implemented in Java.
LuaValue + +
+          Base class for all concrete lua type values.
Prototype + +
+          Prototype representing compiled lua code.
+  +

+ + + + + + + + +
+Classes in org.luaj.vm2 used by org.luaj.vm2.server
Globals + +
+          Global environment used by luaj.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/DefaultLauncher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/DefaultLauncher.html new file mode 100644 index 000000000..17343af9f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/DefaultLauncher.html @@ -0,0 +1,370 @@ + + + + + + +DefaultLauncher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.server +
+Class DefaultLauncher

+
+java.lang.Object
+  extended by org.luaj.vm2.server.DefaultLauncher
+
+
+
All Implemented Interfaces:
Launcher
+
+
+
+
public class DefaultLauncher
extends java.lang.Object
implements Launcher
+ + +

+Default Launcher instance that creates standard globals + and runs the supplied scripts with chunk name 'main'. +

+ Arguments are coerced into lua using CoerceJavaToLua.coerce(Object). +

+ Return values with simple types are coerced into Java simple types. + Tables, threads, and functions are returned as lua objects. +

+ +

+

+
Since:
+
luaj 3.0.1
+
See Also:
Launcher, +LuajClassLoader, +LuajClassLoader.NewLauncher(), +LuajClassLoader.NewLauncher(Class)
+
+ +

+ + + + + + + + + + + +
+Field Summary
+protected  Globalsg + +
+           
+  + + + + + + + + + + +
+Constructor Summary
DefaultLauncher() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Object[]launch(java.io.InputStream script, + java.lang.Object[] arg) + +
+          Launches the script with chunk name 'main' and loading using modes 'bt'
+ java.lang.Object[]launch(java.io.Reader script, + java.lang.Object[] arg) + +
+          Launches the script with chunk name 'main'
+ java.lang.Object[]launch(java.lang.String script, + java.lang.Object[] arg) + +
+          Launches the script with chunk name 'main'
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+g

+
+protected Globals g
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+DefaultLauncher

+
+public DefaultLauncher()
+
+
+ + + + + + + + +
+Method Detail
+ +

+launch

+
+public java.lang.Object[] launch(java.lang.String script,
+                                 java.lang.Object[] arg)
+
+
Launches the script with chunk name 'main' +

+

+
Specified by:
launch in interface Launcher
+
+
+
Parameters:
script - The script contents.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+
+ +

+launch

+
+public java.lang.Object[] launch(java.io.InputStream script,
+                                 java.lang.Object[] arg)
+
+
Launches the script with chunk name 'main' and loading using modes 'bt' +

+

+
Specified by:
launch in interface Launcher
+
+
+
Parameters:
script - The script as an InputStream.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+
+ +

+launch

+
+public java.lang.Object[] launch(java.io.Reader script,
+                                 java.lang.Object[] arg)
+
+
Launches the script with chunk name 'main' +

+

+
Specified by:
launch in interface Launcher
+
+
+
Parameters:
script - The script as a Reader.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/Launcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/Launcher.html new file mode 100644 index 000000000..6f9766908 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/Launcher.html @@ -0,0 +1,283 @@ + + + + + + +Launcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.server +
+Interface Launcher

+
+
All Known Implementing Classes:
DefaultLauncher
+
+
+
+
public interface Launcher
+ + +

+Interface to launch lua scripts using the LuajClassLoader. +

+ Note: This class is experimental and subject to change in future versions. +

+ This interface is purposely genericized to defer class loading so that + luaj classes can come from the class loader. +

+ The implementation should be acquired using LuajClassLoader.NewLauncher() + or LuajClassLoader.NewLauncher(Class) which ensure that the classes are + loaded to give each Launcher instance a pristine set of Globals, including + the shared metatables. +

+ +

+

+
Since:
+
luaj 3.0.1
+
See Also:
LuajClassLoader, +LuajClassLoader.NewLauncher(), +LuajClassLoader.NewLauncher(Class), +DefaultLauncher
+
+ +

+ + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Object[]launch(java.io.InputStream script, + java.lang.Object[] arg) + +
+          Launch a script from an InputStream.
+ java.lang.Object[]launch(java.io.Reader script, + java.lang.Object[] arg) + +
+          Launch a script from a Reader.
+ java.lang.Object[]launch(java.lang.String script, + java.lang.Object[] arg) + +
+          Launch a script contained in a String.
+  +

+ + + + + + + + +
+Method Detail
+ +

+launch

+
+java.lang.Object[] launch(java.lang.String script,
+                          java.lang.Object[] arg)
+
+
Launch a script contained in a String. +

+

+
Parameters:
script - The script contents.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+
+ +

+launch

+
+java.lang.Object[] launch(java.io.InputStream script,
+                          java.lang.Object[] arg)
+
+
Launch a script from an InputStream. +

+

+
Parameters:
script - The script as an InputStream.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+
+ +

+launch

+
+java.lang.Object[] launch(java.io.Reader script,
+                          java.lang.Object[] arg)
+
+
Launch a script from a Reader. +

+

+
Parameters:
script - The script as a Reader.
arg - Optional arguments supplied to the script. +
Returns:
return values from the script.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/LuajClassLoader.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/LuajClassLoader.html new file mode 100644 index 000000000..4fd002d92 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/LuajClassLoader.html @@ -0,0 +1,403 @@ + + + + + + +LuajClassLoader (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.luaj.vm2.server +
+Class LuajClassLoader

+
+java.lang.Object
+  extended by java.lang.ClassLoader
+      extended by org.luaj.vm2.server.LuajClassLoader
+
+
+
+
public class LuajClassLoader
extends java.lang.ClassLoader
+ + +

+Class loader that can be used to launch a lua script in a Java VM that has a + unique set of classes for org.luaj classes. +

+ Note: This class is experimental and subject to change in future versions. +

+ By using a custom class loader per script, it allows the script to have + its own set of globals, including static values such as shared metatables + that cannot access lua values from other scripts because their classes are + loaded from different class loaders. Thus normally unsafe libraries such + as luajava can be exposed to scripts in a server environment using these + techniques. +

+ All classes in the package "org.luaj.vm2." are considered user classes, and + loaded into this class loader from their bytes in the class path. Other + classes are considered systemc classes and loaded via the system loader. This + class set can be extended by overriding isUserClass(String). +

+ The Launcher interface is loaded as a system class by exception so + that the caller may use it to launch lua scripts. +

+ By default NewLauncher() creates a subclass of Launcher of + type DefaultLauncher which creates debug globals, runs the script, + and prints the return values. This behavior can be changed by supplying a + different implementation class to NewLauncher(Class) which must + extend Launcher. +

+ +

+

+
Since:
+
luaj 3.0.1
+
See Also:
Launcher, +NewLauncher(), +NewLauncher(Class), +DefaultLauncher
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
LuajClassLoader() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static booleanisUserClass(java.lang.String classname) + +
+          Test if a class name should be considered a user class and loaded + by this loader, or a system class and loaded by the system loader.
+ java.lang.Class<?>loadClass(java.lang.String classname) + +
+           
+static LauncherNewLauncher() + +
+          Construct a default Launcher instance that will load classes in + its own LuajClassLoader using the default implementation class + DefaultLauncher.
+static LauncherNewLauncher(java.lang.Class<? extends Launcher> launcher_class) + +
+          Construct a Launcher instance that will load classes in + its own LuajClassLoader using a user-supplied implementation class + that implements Launcher.
+ + + + + + + +
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+LuajClassLoader

+
+public LuajClassLoader()
+
+
+ + + + + + + + +
+Method Detail
+ +

+NewLauncher

+
+public static Launcher NewLauncher()
+                            throws java.lang.InstantiationException,
+                                   java.lang.IllegalAccessException,
+                                   java.lang.ClassNotFoundException
+
+
Construct a default Launcher instance that will load classes in + its own LuajClassLoader using the default implementation class + DefaultLauncher. +

+ The Launcher that is returned will be a pristine luaj vm + whose classes are loaded into this loader including static variables + such as shared metatables, and should not be able to directly access + variables from other Launcher instances. +

+

+ +
Returns:
Launcher instance that can be used to launch scripts. +
Throws: +
java.lang.InstantiationException +
java.lang.IllegalAccessException +
java.lang.ClassNotFoundException
+
+
+
+ +

+NewLauncher

+
+public static Launcher NewLauncher(java.lang.Class<? extends Launcher> launcher_class)
+                            throws java.lang.InstantiationException,
+                                   java.lang.IllegalAccessException,
+                                   java.lang.ClassNotFoundException
+
+
Construct a Launcher instance that will load classes in + its own LuajClassLoader using a user-supplied implementation class + that implements Launcher. +

+ The Launcher that is returned will be a pristine luaj vm + whose classes are loaded into this loader including static variables + such as shared metatables, and should not be able to directly access + variables from other Launcher instances. +

+

+ +
Returns:
instance of type 'launcher_class' that can be used to launch scripts. +
Throws: +
java.lang.InstantiationException +
java.lang.IllegalAccessException +
java.lang.ClassNotFoundException
+
+
+
+ +

+isUserClass

+
+public static boolean isUserClass(java.lang.String classname)
+
+
Test if a class name should be considered a user class and loaded + by this loader, or a system class and loaded by the system loader. +

+

+
Parameters:
classname - Class name to test. +
Returns:
true if this should be loaded into this class loader.
+
+
+
+ +

+loadClass

+
+public java.lang.Class<?> loadClass(java.lang.String classname)
+                             throws java.lang.ClassNotFoundException
+
+
+
Overrides:
loadClass in class java.lang.ClassLoader
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/DefaultLauncher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/DefaultLauncher.html new file mode 100644 index 000000000..12f86e8fc --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/DefaultLauncher.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.server.DefaultLauncher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.server.DefaultLauncher

+
+No usage of org.luaj.vm2.server.DefaultLauncher +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/Launcher.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/Launcher.html new file mode 100644 index 000000000..5f53c0867 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/Launcher.html @@ -0,0 +1,227 @@ + + + + + + +Uses of Interface org.luaj.vm2.server.Launcher (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.luaj.vm2.server.Launcher

+
+ + + + + + + + + +
+Packages that use Launcher
org.luaj.vm2.server  
+  +

+ + + + + +
+Uses of Launcher in org.luaj.vm2.server
+  +

+ + + + + + + + + +
Classes in org.luaj.vm2.server that implement Launcher
+ classDefaultLauncher + +
+          Default Launcher instance that creates standard globals + and runs the supplied scripts with chunk name 'main'.
+  +

+ + + + + + + + + + + + + +
Methods in org.luaj.vm2.server that return Launcher
+static LauncherLuajClassLoader.NewLauncher() + +
+          Construct a default Launcher instance that will load classes in + its own LuajClassLoader using the default implementation class + DefaultLauncher.
+static LauncherLuajClassLoader.NewLauncher(java.lang.Class<? extends Launcher> launcher_class) + +
+          Construct a Launcher instance that will load classes in + its own LuajClassLoader using a user-supplied implementation class + that implements Launcher.
+  +

+ + + + + + + + + +
Method parameters in org.luaj.vm2.server with type arguments of type Launcher
+static LauncherLuajClassLoader.NewLauncher(java.lang.Class<? extends Launcher> launcher_class) + +
+          Construct a Launcher instance that will load classes in + its own LuajClassLoader using a user-supplied implementation class + that implements Launcher.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/LuajClassLoader.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/LuajClassLoader.html new file mode 100644 index 000000000..437e1219c --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/class-use/LuajClassLoader.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.luaj.vm2.server.LuajClassLoader (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.luaj.vm2.server.LuajClassLoader

+
+No usage of org.luaj.vm2.server.LuajClassLoader +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-frame.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-frame.html new file mode 100644 index 000000000..a772f82f7 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-frame.html @@ -0,0 +1,45 @@ + + + + + + +org.luaj.vm2.server (Luaj API) + + + + + + + + + + + +org.luaj.vm2.server + + + + +
+Interfaces  + +
+Launcher
+ + + + + + +
+Classes  + +
+DefaultLauncher +
+LuajClassLoader
+ + + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-summary.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-summary.html new file mode 100644 index 000000000..c230eda4b --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-summary.html @@ -0,0 +1,177 @@ + + + + + + +org.luaj.vm2.server (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.luaj.vm2.server +

+ + + + + + + + + +
+Interface Summary
LauncherInterface to launch lua scripts using the LuajClassLoader.
+  + +

+ + + + + + + + + + + + + +
+Class Summary
DefaultLauncherDefault Launcher instance that creates standard globals + and runs the supplied scripts with chunk name 'main'.
LuajClassLoaderClass loader that can be used to launch a lua script in a Java VM that has a + unique set of classes for org.luaj classes.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-tree.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-tree.html new file mode 100644 index 000000000..673ee3fe3 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-tree.html @@ -0,0 +1,161 @@ + + + + + + +org.luaj.vm2.server Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.luaj.vm2.server +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-use.html b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-use.html new file mode 100644 index 000000000..c5efad55a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/org/luaj/vm2/server/package-use.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Package org.luaj.vm2.server (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.luaj.vm2.server

+
+ + + + + + + + + +
+Packages that use org.luaj.vm2.server
org.luaj.vm2.server  
+  +

+ + + + + + + + +
+Classes in org.luaj.vm2.server used by org.luaj.vm2.server
Launcher + +
+          Interface to launch lua scripts using the LuajClassLoader.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/overview-frame.html b/lib/javadoc/luaj-javadoc/overview-frame.html new file mode 100644 index 000000000..e12a44943 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/overview-frame.html @@ -0,0 +1,54 @@ + + + + + + +Overview List (Luaj API) + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+org.luaj.vm2 +
+org.luaj.vm2.compiler +
+org.luaj.vm2.lib +
+org.luaj.vm2.lib.jme +
+org.luaj.vm2.lib.jse +
+org.luaj.vm2.luajc +
+org.luaj.vm2.server +
+

+ +

+  + + diff --git a/lib/javadoc/luaj-javadoc/overview-summary.html b/lib/javadoc/luaj-javadoc/overview-summary.html new file mode 100644 index 000000000..3454e6c2a --- /dev/null +++ b/lib/javadoc/luaj-javadoc/overview-summary.html @@ -0,0 +1,180 @@ + + + + + + +Overview (Luaj API) + + + + + + + + + + + + +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+

Luaj API

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Other Packages
org.luaj.vm2 
org.luaj.vm2.compiler 
org.luaj.vm2.lib 
org.luaj.vm2.lib.jme 
org.luaj.vm2.lib.jse 
org.luaj.vm2.luajc 
org.luaj.vm2.server 
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/overview-tree.html b/lib/javadoc/luaj-javadoc/overview-tree.html new file mode 100644 index 000000000..9a1754d9f --- /dev/null +++ b/lib/javadoc/luaj-javadoc/overview-tree.html @@ -0,0 +1,203 @@ + + + + + + +Class Hierarchy (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
org.luaj.vm2, org.luaj.vm2.compiler, org.luaj.vm2.lib, org.luaj.vm2.lib.jme, org.luaj.vm2.lib.jse, org.luaj.vm2.luajc, org.luaj.vm2.server
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/luaj-javadoc/package-list b/lib/javadoc/luaj-javadoc/package-list new file mode 100644 index 000000000..1674eb7c8 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/package-list @@ -0,0 +1,7 @@ +org.luaj.vm2 +org.luaj.vm2.compiler +org.luaj.vm2.lib +org.luaj.vm2.lib.jme +org.luaj.vm2.lib.jse +org.luaj.vm2.luajc +org.luaj.vm2.server diff --git a/lib/javadoc/luaj-javadoc/resources/inherit.gif b/lib/javadoc/luaj-javadoc/resources/inherit.gif new file mode 100644 index 0000000000000000000000000000000000000000..c814867a13deb0ca7ea2156c6ca1d5a03372af7e GIT binary patch literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/lib/javadoc/luaj-javadoc/serialized-form.html b/lib/javadoc/luaj-javadoc/serialized-form.html new file mode 100644 index 000000000..bd5563052 --- /dev/null +++ b/lib/javadoc/luaj-javadoc/serialized-form.html @@ -0,0 +1,229 @@ + + + + + + +Serialized Form (Luaj API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Serialized Form

+
+
+ + + + + +
+Package org.luaj.vm2
+ +

+ + + + + +
+Class org.luaj.vm2.LuaError extends java.lang.RuntimeException implements Serializable
+ +

+serialVersionUID: 1L + +

+ + + + + +
+Serialized Fields
+ +

+level

+
+int level
+
+
+
+
+
+

+fileline

+
+java.lang.String fileline
+
+
+
+
+
+

+traceback

+
+java.lang.String traceback
+
+
+
+
+
+

+cause

+
+java.lang.Throwable cause
+
+
+
+
+
+

+object

+
+LuaValue object
+
+
+
+
+ +

+ + + + + +
+Class org.luaj.vm2.OrphanedThread extends java.lang.Error implements Serializable
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2007-2015 Luaj.org. All Rights Reserved. + + diff --git a/lib/javadoc/stylesheet.css b/lib/javadoc/luaj-javadoc/stylesheet.css similarity index 100% rename from lib/javadoc/stylesheet.css rename to lib/javadoc/luaj-javadoc/stylesheet.css diff --git a/lib/javadoc/allclasses-frame.html b/lib/javadoc/slick-javadoc/allclasses-frame.html similarity index 100% rename from lib/javadoc/allclasses-frame.html rename to lib/javadoc/slick-javadoc/allclasses-frame.html diff --git a/lib/javadoc/allclasses-noframe.html b/lib/javadoc/slick-javadoc/allclasses-noframe.html similarity index 100% rename from lib/javadoc/allclasses-noframe.html rename to lib/javadoc/slick-javadoc/allclasses-noframe.html diff --git a/lib/javadoc/constant-values.html b/lib/javadoc/slick-javadoc/constant-values.html similarity index 100% rename from lib/javadoc/constant-values.html rename to lib/javadoc/slick-javadoc/constant-values.html diff --git a/lib/javadoc/deprecated-list.html b/lib/javadoc/slick-javadoc/deprecated-list.html similarity index 100% rename from lib/javadoc/deprecated-list.html rename to lib/javadoc/slick-javadoc/deprecated-list.html diff --git a/lib/javadoc/help-doc.html b/lib/javadoc/slick-javadoc/help-doc.html similarity index 100% rename from lib/javadoc/help-doc.html rename to lib/javadoc/slick-javadoc/help-doc.html diff --git a/lib/javadoc/index-all.html b/lib/javadoc/slick-javadoc/index-all.html similarity index 100% rename from lib/javadoc/index-all.html rename to lib/javadoc/slick-javadoc/index-all.html diff --git a/lib/javadoc/index.html b/lib/javadoc/slick-javadoc/index.html similarity index 100% rename from lib/javadoc/index.html rename to lib/javadoc/slick-javadoc/index.html diff --git a/lib/javadoc/org/newdawn/slick/AngelCodeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AngelCodeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AngelCodeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AngelCodeFont.html diff --git a/lib/javadoc/org/newdawn/slick/Animation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Animation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Animation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Animation.html diff --git a/lib/javadoc/org/newdawn/slick/AppGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AppGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AppGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AppGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/AppletGameContainer.ConsolePanel.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.ConsolePanel.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AppletGameContainer.ConsolePanel.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.ConsolePanel.html diff --git a/lib/javadoc/org/newdawn/slick/AppletGameContainer.Container.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.Container.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AppletGameContainer.Container.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.Container.html diff --git a/lib/javadoc/org/newdawn/slick/AppletGameContainer.ContainerPanel.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.ContainerPanel.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AppletGameContainer.ContainerPanel.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.ContainerPanel.html diff --git a/lib/javadoc/org/newdawn/slick/AppletGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/AppletGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/AppletGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/BasicGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/BasicGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/BasicGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/BasicGame.html diff --git a/lib/javadoc/org/newdawn/slick/BigImage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/BigImage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/BigImage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/BigImage.html diff --git a/lib/javadoc/org/newdawn/slick/CachedRender.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/CachedRender.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/CachedRender.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/CachedRender.html diff --git a/lib/javadoc/org/newdawn/slick/CanvasGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/CanvasGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/CanvasGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/CanvasGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/Color.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Color.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Color.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Color.html diff --git a/lib/javadoc/org/newdawn/slick/ControlledInputReciever.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/ControlledInputReciever.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/ControlledInputReciever.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/ControlledInputReciever.html diff --git a/lib/javadoc/org/newdawn/slick/ControllerListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/ControllerListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/ControllerListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/ControllerListener.html diff --git a/lib/javadoc/org/newdawn/slick/Font.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Font.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Font.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Font.html diff --git a/lib/javadoc/org/newdawn/slick/Game.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Game.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Game.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Game.html diff --git a/lib/javadoc/org/newdawn/slick/GameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/GameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/GameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/GameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/Graphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Graphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Graphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Graphics.html diff --git a/lib/javadoc/org/newdawn/slick/Image.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Image.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Image.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Image.html diff --git a/lib/javadoc/org/newdawn/slick/ImageBuffer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/ImageBuffer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/ImageBuffer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/ImageBuffer.html diff --git a/lib/javadoc/org/newdawn/slick/Input.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Input.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Input.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Input.html diff --git a/lib/javadoc/org/newdawn/slick/InputListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/InputListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/InputListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/InputListener.html diff --git a/lib/javadoc/org/newdawn/slick/KeyListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/KeyListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/KeyListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/KeyListener.html diff --git a/lib/javadoc/org/newdawn/slick/MouseListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/MouseListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/MouseListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/MouseListener.html diff --git a/lib/javadoc/org/newdawn/slick/Music.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Music.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Music.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Music.html diff --git a/lib/javadoc/org/newdawn/slick/MusicListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/MusicListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/MusicListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/MusicListener.html diff --git a/lib/javadoc/org/newdawn/slick/PackedSpriteSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/PackedSpriteSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/PackedSpriteSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/PackedSpriteSheet.html diff --git a/lib/javadoc/org/newdawn/slick/Renderable.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Renderable.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Renderable.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Renderable.html diff --git a/lib/javadoc/org/newdawn/slick/SavedState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/SavedState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/SavedState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/SavedState.html diff --git a/lib/javadoc/org/newdawn/slick/ScalableGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/ScalableGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/ScalableGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/ScalableGame.html diff --git a/lib/javadoc/org/newdawn/slick/ShapeFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/ShapeFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/ShapeFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/ShapeFill.html diff --git a/lib/javadoc/org/newdawn/slick/SlickException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/SlickException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/SlickException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/SlickException.html diff --git a/lib/javadoc/org/newdawn/slick/Sound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/Sound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/Sound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/Sound.html diff --git a/lib/javadoc/org/newdawn/slick/SpriteSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/SpriteSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/SpriteSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/SpriteSheet.html diff --git a/lib/javadoc/org/newdawn/slick/SpriteSheetFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/SpriteSheetFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/SpriteSheetFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/SpriteSheetFont.html diff --git a/lib/javadoc/org/newdawn/slick/TrueTypeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/TrueTypeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/TrueTypeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/TrueTypeFont.html diff --git a/lib/javadoc/org/newdawn/slick/UnicodeFont.DisplayList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/UnicodeFont.DisplayList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/UnicodeFont.DisplayList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/UnicodeFont.DisplayList.html diff --git a/lib/javadoc/org/newdawn/slick/UnicodeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/UnicodeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/UnicodeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/UnicodeFont.html diff --git a/lib/javadoc/org/newdawn/slick/XMLPackedSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/XMLPackedSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/XMLPackedSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/XMLPackedSheet.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AngelCodeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AngelCodeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AngelCodeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AngelCodeFont.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Animation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Animation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Animation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Animation.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AppGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AppGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.ConsolePanel.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.ConsolePanel.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.ConsolePanel.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.ConsolePanel.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.Container.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.Container.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.Container.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.Container.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.ContainerPanel.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.ContainerPanel.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.ContainerPanel.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.ContainerPanel.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/AppletGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/AppletGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/BasicGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/BasicGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/BasicGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/BasicGame.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/BigImage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/BigImage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/BigImage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/BigImage.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/CachedRender.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/CachedRender.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/CachedRender.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/CachedRender.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/CanvasGameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/CanvasGameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/CanvasGameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/CanvasGameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Color.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Color.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Color.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Color.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/ControlledInputReciever.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ControlledInputReciever.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/ControlledInputReciever.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ControlledInputReciever.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/ControllerListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ControllerListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/ControllerListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ControllerListener.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Font.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Font.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Font.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Font.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Game.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Game.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Game.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Game.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/GameContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/GameContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/GameContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/GameContainer.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Graphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Graphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Graphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Graphics.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Image.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Image.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Image.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Image.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/ImageBuffer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ImageBuffer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/ImageBuffer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ImageBuffer.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Input.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Input.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Input.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Input.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/InputListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/InputListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/InputListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/InputListener.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/KeyListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/KeyListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/KeyListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/KeyListener.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/MouseListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/MouseListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/MouseListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/MouseListener.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Music.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Music.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Music.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Music.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/MusicListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/MusicListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/MusicListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/MusicListener.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/PackedSpriteSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/PackedSpriteSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/PackedSpriteSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/PackedSpriteSheet.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Renderable.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Renderable.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Renderable.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Renderable.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/SavedState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SavedState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/SavedState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SavedState.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/ScalableGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ScalableGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/ScalableGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ScalableGame.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/ShapeFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ShapeFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/ShapeFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/ShapeFill.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/SlickException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SlickException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/SlickException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SlickException.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/Sound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Sound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/Sound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/Sound.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/SpriteSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SpriteSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/SpriteSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SpriteSheet.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/SpriteSheetFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SpriteSheetFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/SpriteSheetFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/SpriteSheetFont.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/TrueTypeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/TrueTypeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/TrueTypeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/TrueTypeFont.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/UnicodeFont.DisplayList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/UnicodeFont.DisplayList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/UnicodeFont.DisplayList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/UnicodeFont.DisplayList.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/UnicodeFont.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/UnicodeFont.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/UnicodeFont.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/UnicodeFont.html diff --git a/lib/javadoc/org/newdawn/slick/class-use/XMLPackedSheet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/XMLPackedSheet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/class-use/XMLPackedSheet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/class-use/XMLPackedSheet.html diff --git a/lib/javadoc/org/newdawn/slick/command/BasicCommand.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/BasicCommand.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/BasicCommand.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/BasicCommand.html diff --git a/lib/javadoc/org/newdawn/slick/command/Command.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/Command.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/Command.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/Command.html diff --git a/lib/javadoc/org/newdawn/slick/command/Control.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/Control.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/Control.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/Control.html diff --git a/lib/javadoc/org/newdawn/slick/command/ControllerButtonControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/ControllerButtonControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/ControllerButtonControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/ControllerButtonControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/ControllerDirectionControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/ControllerDirectionControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/ControllerDirectionControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/ControllerDirectionControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/InputProvider.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/InputProvider.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/InputProvider.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/InputProvider.html diff --git a/lib/javadoc/org/newdawn/slick/command/InputProviderListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/InputProviderListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/InputProviderListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/InputProviderListener.html diff --git a/lib/javadoc/org/newdawn/slick/command/KeyControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/KeyControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/KeyControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/KeyControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/MouseButtonControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/MouseButtonControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/MouseButtonControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/MouseButtonControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/BasicCommand.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/BasicCommand.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/BasicCommand.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/BasicCommand.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/Command.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/Command.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/Command.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/Command.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/Control.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/Control.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/Control.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/Control.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/ControllerButtonControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/ControllerButtonControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/ControllerButtonControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/ControllerButtonControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/ControllerDirectionControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/ControllerDirectionControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/ControllerDirectionControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/ControllerDirectionControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/InputProvider.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/InputProvider.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/InputProvider.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/InputProvider.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/InputProviderListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/InputProviderListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/InputProviderListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/InputProviderListener.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/KeyControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/KeyControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/KeyControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/KeyControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/class-use/MouseButtonControl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/MouseButtonControl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/class-use/MouseButtonControl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/class-use/MouseButtonControl.html diff --git a/lib/javadoc/org/newdawn/slick/command/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/command/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/command/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/command/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/command/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/command/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/fills/GradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/GradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/GradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/GradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/fills/class-use/GradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/class-use/GradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/class-use/GradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/class-use/GradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/fills/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/fills/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/fills/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/fills/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/fills/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/fills/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/font/Glyph.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/Glyph.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/Glyph.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/Glyph.html diff --git a/lib/javadoc/org/newdawn/slick/font/GlyphPage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/GlyphPage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/GlyphPage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/GlyphPage.html diff --git a/lib/javadoc/org/newdawn/slick/font/HieroSettings.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/HieroSettings.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/HieroSettings.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/HieroSettings.html diff --git a/lib/javadoc/org/newdawn/slick/font/class-use/Glyph.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/Glyph.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/class-use/Glyph.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/Glyph.html diff --git a/lib/javadoc/org/newdawn/slick/font/class-use/GlyphPage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/GlyphPage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/class-use/GlyphPage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/GlyphPage.html diff --git a/lib/javadoc/org/newdawn/slick/font/class-use/HieroSettings.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/HieroSettings.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/class-use/HieroSettings.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/class-use/HieroSettings.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/ColorEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ColorEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/ColorEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ColorEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.Value.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.Value.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.Value.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.Value.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ConfigurableEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/Effect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/Effect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/Effect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/Effect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/EffectUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/EffectUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/EffectUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/EffectUtil.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/FilterEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/FilterEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/FilterEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/FilterEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/GradientEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/GradientEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/GradientEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/GradientEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/OutlineEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/OutlineEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/OutlineWobbleEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineWobbleEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/OutlineWobbleEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineWobbleEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/OutlineZigzagEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineZigzagEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/OutlineZigzagEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/OutlineZigzagEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/ShadowEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ShadowEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/ShadowEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/ShadowEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/ColorEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ColorEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/ColorEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ColorEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.Value.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.Value.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.Value.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.Value.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ConfigurableEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/Effect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/Effect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/Effect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/Effect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/EffectUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/EffectUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/EffectUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/EffectUtil.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/FilterEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/FilterEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/FilterEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/FilterEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/GradientEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/GradientEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/GradientEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/GradientEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineWobbleEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineWobbleEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineWobbleEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineWobbleEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineZigzagEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineZigzagEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/OutlineZigzagEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/OutlineZigzagEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/class-use/ShadowEffect.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ShadowEffect.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/class-use/ShadowEffect.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/class-use/ShadowEffect.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/font/effects/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/effects/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/effects/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/font/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/font/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/font/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/font/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/font/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/font/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/geom/BasicTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/BasicTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/BasicTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/BasicTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Circle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Circle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Circle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Circle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Curve.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Curve.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Curve.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Curve.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Ellipse.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Ellipse.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Ellipse.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Ellipse.html diff --git a/lib/javadoc/org/newdawn/slick/geom/GeomUtil.HitResult.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtil.HitResult.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/GeomUtil.HitResult.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtil.HitResult.html diff --git a/lib/javadoc/org/newdawn/slick/geom/GeomUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/GeomUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtil.html diff --git a/lib/javadoc/org/newdawn/slick/geom/GeomUtilListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtilListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/GeomUtilListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/GeomUtilListener.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Line.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Line.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Line.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Line.html diff --git a/lib/javadoc/org/newdawn/slick/geom/MannTriangulator.PointBag.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MannTriangulator.PointBag.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/MannTriangulator.PointBag.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MannTriangulator.PointBag.html diff --git a/lib/javadoc/org/newdawn/slick/geom/MannTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MannTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/MannTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MannTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/MorphShape.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MorphShape.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/MorphShape.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/MorphShape.html diff --git a/lib/javadoc/org/newdawn/slick/geom/NeatTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/NeatTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/NeatTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/NeatTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/OverTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/OverTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/OverTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/OverTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Path.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Path.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Path.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Path.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Point.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Point.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Point.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Point.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Polygon.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Polygon.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Polygon.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Polygon.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Rectangle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Rectangle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Rectangle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Rectangle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/RoundedRectangle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/RoundedRectangle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/RoundedRectangle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/RoundedRectangle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Shape.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Shape.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Shape.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Shape.html diff --git a/lib/javadoc/org/newdawn/slick/geom/ShapeRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/ShapeRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/ShapeRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/ShapeRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/geom/TexCoordGenerator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/TexCoordGenerator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/TexCoordGenerator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/TexCoordGenerator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Transform.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Transform.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Transform.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Transform.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Triangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Triangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Triangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Triangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/Vector2f.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Vector2f.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/Vector2f.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/Vector2f.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/BasicTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/BasicTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/BasicTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/BasicTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Circle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Circle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Circle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Circle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Curve.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Curve.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Curve.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Curve.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Ellipse.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Ellipse.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Ellipse.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Ellipse.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtil.HitResult.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtil.HitResult.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtil.HitResult.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtil.HitResult.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtil.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtilListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtilListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/GeomUtilListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/GeomUtilListener.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Line.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Line.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Line.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Line.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.PointBag.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.PointBag.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.PointBag.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.PointBag.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MannTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/MorphShape.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MorphShape.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/MorphShape.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/MorphShape.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/NeatTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/NeatTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/NeatTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/NeatTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/OverTriangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/OverTriangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/OverTriangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/OverTriangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Path.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Path.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Path.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Path.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Point.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Point.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Point.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Point.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Polygon.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Polygon.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Polygon.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Polygon.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Rectangle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Rectangle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Rectangle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Rectangle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/RoundedRectangle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/RoundedRectangle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/RoundedRectangle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/RoundedRectangle.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Shape.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Shape.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Shape.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Shape.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/ShapeRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/ShapeRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/ShapeRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/ShapeRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/TexCoordGenerator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/TexCoordGenerator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/TexCoordGenerator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/TexCoordGenerator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Transform.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Transform.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Transform.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Transform.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Triangulator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Triangulator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Triangulator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Triangulator.html diff --git a/lib/javadoc/org/newdawn/slick/geom/class-use/Vector2f.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Vector2f.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/class-use/Vector2f.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/class-use/Vector2f.html diff --git a/lib/javadoc/org/newdawn/slick/geom/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/geom/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/geom/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/geom/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/geom/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/geom/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/gui/AbstractComponent.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/AbstractComponent.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/AbstractComponent.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/AbstractComponent.html diff --git a/lib/javadoc/org/newdawn/slick/gui/BasicComponent.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/BasicComponent.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/BasicComponent.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/BasicComponent.html diff --git a/lib/javadoc/org/newdawn/slick/gui/ComponentListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/ComponentListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/ComponentListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/ComponentListener.html diff --git a/lib/javadoc/org/newdawn/slick/gui/GUIContext.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/GUIContext.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/GUIContext.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/GUIContext.html diff --git a/lib/javadoc/org/newdawn/slick/gui/MouseOverArea.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/MouseOverArea.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/MouseOverArea.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/MouseOverArea.html diff --git a/lib/javadoc/org/newdawn/slick/gui/TextField.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/TextField.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/TextField.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/TextField.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/AbstractComponent.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/AbstractComponent.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/AbstractComponent.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/AbstractComponent.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/BasicComponent.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/BasicComponent.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/BasicComponent.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/BasicComponent.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/ComponentListener.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/ComponentListener.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/ComponentListener.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/ComponentListener.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/GUIContext.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/GUIContext.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/GUIContext.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/GUIContext.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/MouseOverArea.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/MouseOverArea.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/MouseOverArea.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/MouseOverArea.html diff --git a/lib/javadoc/org/newdawn/slick/gui/class-use/TextField.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/TextField.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/class-use/TextField.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/class-use/TextField.html diff --git a/lib/javadoc/org/newdawn/slick/gui/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/gui/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/gui/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/gui/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/gui/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/gui/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/ImageIOWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageIOWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/ImageIOWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageIOWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/ImageOut.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageOut.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/ImageOut.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageOut.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/ImageWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/ImageWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/ImageWriterFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageWriterFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/ImageWriterFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/ImageWriterFactory.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/TGAWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/TGAWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/TGAWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/TGAWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/class-use/ImageIOWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageIOWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/class-use/ImageIOWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageIOWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/class-use/ImageOut.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageOut.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/class-use/ImageOut.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageOut.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/class-use/ImageWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/class-use/ImageWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/class-use/ImageWriterFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageWriterFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/class-use/ImageWriterFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/ImageWriterFactory.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/class-use/TGAWriter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/TGAWriter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/class-use/TGAWriter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/class-use/TGAWriter.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/imageout/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/imageout/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/imageout/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/loading/DeferredResource.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/DeferredResource.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/DeferredResource.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/DeferredResource.html diff --git a/lib/javadoc/org/newdawn/slick/loading/LoadingList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/LoadingList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/LoadingList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/LoadingList.html diff --git a/lib/javadoc/org/newdawn/slick/loading/class-use/DeferredResource.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/class-use/DeferredResource.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/class-use/DeferredResource.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/class-use/DeferredResource.html diff --git a/lib/javadoc/org/newdawn/slick/loading/class-use/LoadingList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/class-use/LoadingList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/class-use/LoadingList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/class-use/LoadingList.html diff --git a/lib/javadoc/org/newdawn/slick/loading/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/loading/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/loading/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/loading/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/loading/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/loading/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/FileMuffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/FileMuffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/FileMuffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/FileMuffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/Muffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/Muffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/Muffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/Muffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/WebstartMuffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/WebstartMuffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/WebstartMuffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/WebstartMuffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/class-use/FileMuffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/FileMuffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/class-use/FileMuffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/FileMuffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/class-use/Muffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/Muffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/class-use/Muffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/Muffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/class-use/WebstartMuffin.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/WebstartMuffin.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/class-use/WebstartMuffin.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/class-use/WebstartMuffin.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/muffin/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/muffin/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/muffin/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/openal/AiffData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AiffData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/AiffData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AiffData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/Audio.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/Audio.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/Audio.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/Audio.html diff --git a/lib/javadoc/org/newdawn/slick/openal/AudioImpl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AudioImpl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/AudioImpl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AudioImpl.html diff --git a/lib/javadoc/org/newdawn/slick/openal/AudioLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AudioLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/AudioLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/AudioLoader.html diff --git a/lib/javadoc/org/newdawn/slick/openal/DeferredSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/DeferredSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/DeferredSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/DeferredSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/MODSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/MODSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/MODSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/MODSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/NullAudio.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/NullAudio.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/NullAudio.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/NullAudio.html diff --git a/lib/javadoc/org/newdawn/slick/openal/OggData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/OggData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/OggDecoder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggDecoder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/OggDecoder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggDecoder.html diff --git a/lib/javadoc/org/newdawn/slick/openal/OggInputStream.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggInputStream.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/OggInputStream.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OggInputStream.html diff --git a/lib/javadoc/org/newdawn/slick/openal/OpenALStreamPlayer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OpenALStreamPlayer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/OpenALStreamPlayer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/OpenALStreamPlayer.html diff --git a/lib/javadoc/org/newdawn/slick/openal/SoundStore.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/SoundStore.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/SoundStore.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/SoundStore.html diff --git a/lib/javadoc/org/newdawn/slick/openal/StreamSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/StreamSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/StreamSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/StreamSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/WaveData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/WaveData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/WaveData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/WaveData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/AiffData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AiffData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/AiffData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AiffData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/Audio.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/Audio.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/Audio.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/Audio.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/AudioImpl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AudioImpl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/AudioImpl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AudioImpl.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/AudioLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AudioLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/AudioLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/AudioLoader.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/DeferredSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/DeferredSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/DeferredSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/DeferredSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/MODSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/MODSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/MODSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/MODSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/NullAudio.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/NullAudio.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/NullAudio.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/NullAudio.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/OggData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/OggData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/OggDecoder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggDecoder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/OggDecoder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggDecoder.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/OggInputStream.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggInputStream.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/OggInputStream.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OggInputStream.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/OpenALStreamPlayer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OpenALStreamPlayer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/OpenALStreamPlayer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/OpenALStreamPlayer.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/SoundStore.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/SoundStore.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/SoundStore.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/SoundStore.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/StreamSound.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/StreamSound.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/StreamSound.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/StreamSound.html diff --git a/lib/javadoc/org/newdawn/slick/openal/class-use/WaveData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/WaveData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/class-use/WaveData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/class-use/WaveData.html diff --git a/lib/javadoc/org/newdawn/slick/openal/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/openal/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/openal/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/openal/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/openal/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/openal/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/CompositeIOException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CompositeIOException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/CompositeIOException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CompositeIOException.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/CompositeImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CompositeImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/CompositeImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CompositeImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/CursorLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CursorLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/CursorLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/CursorLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/DeferredTexture.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/DeferredTexture.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/DeferredTexture.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/DeferredTexture.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/EmptyImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/EmptyImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/EmptyImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/EmptyImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/GLUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/GLUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/GLUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/GLUtils.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/ImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/ImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/ImageDataFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageDataFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/ImageDataFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageDataFactory.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/ImageIOImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageIOImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/ImageIOImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/ImageIOImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/InternalTextureLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/InternalTextureLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/InternalTextureLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/InternalTextureLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/LoadableImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/LoadableImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/LoadableImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/LoadableImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/PNGDecoder.Format.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGDecoder.Format.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/PNGDecoder.Format.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGDecoder.Format.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/PNGDecoder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGDecoder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/PNGDecoder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGDecoder.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/PNGImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/PNGImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/PNGImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/SlickCallable.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/SlickCallable.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/SlickCallable.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/SlickCallable.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/TGAImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TGAImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/TGAImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TGAImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/Texture.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/Texture.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/Texture.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/Texture.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/TextureImpl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TextureImpl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/TextureImpl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TextureImpl.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/TextureLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TextureLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/TextureLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/TextureLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/CompositeIOException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CompositeIOException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/CompositeIOException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CompositeIOException.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/CompositeImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CompositeImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/CompositeImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CompositeImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/CursorLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CursorLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/CursorLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/CursorLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/DeferredTexture.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/DeferredTexture.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/DeferredTexture.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/DeferredTexture.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/EmptyImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/EmptyImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/EmptyImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/EmptyImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/GLUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/GLUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/GLUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/GLUtils.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/ImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/ImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/ImageDataFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageDataFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/ImageDataFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageDataFactory.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/ImageIOImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageIOImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/ImageIOImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/ImageIOImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/InternalTextureLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/InternalTextureLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/InternalTextureLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/InternalTextureLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/LoadableImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/LoadableImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/LoadableImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/LoadableImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.Format.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.Format.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.Format.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.Format.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGDecoder.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/PNGImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/PNGImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/PNGImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/SlickCallable.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/SlickCallable.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/SlickCallable.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/SlickCallable.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/TGAImageData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TGAImageData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/TGAImageData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TGAImageData.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/Texture.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/Texture.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/Texture.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/Texture.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/TextureImpl.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TextureImpl.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/TextureImpl.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TextureImpl.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/class-use/TextureLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TextureLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/class-use/TextureLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/class-use/TextureLoader.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/FBOGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/FBOGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/FBOGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/FBOGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/GraphicsFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/GraphicsFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/GraphicsFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/GraphicsFactory.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/PBufferGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/PBufferGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/PBufferGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/PBufferGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/PBufferUniqueGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/PBufferUniqueGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/PBufferUniqueGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/PBufferUniqueGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/FBOGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/FBOGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/FBOGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/FBOGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/GraphicsFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/GraphicsFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/GraphicsFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/GraphicsFactory.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferUniqueGraphics.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferUniqueGraphics.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferUniqueGraphics.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/class-use/PBufferUniqueGraphics.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/pbuffer/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/pbuffer/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/DefaultLineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/DefaultLineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/DefaultLineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/DefaultLineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/ImmediateModeOGLRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/ImmediateModeOGLRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/ImmediateModeOGLRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/ImmediateModeOGLRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/LineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/LineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/LineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/LineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/QuadBasedLineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/QuadBasedLineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/QuadBasedLineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/QuadBasedLineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/Renderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/Renderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/Renderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/Renderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/SGL.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/SGL.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/SGL.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/SGL.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/VAOGLRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/VAOGLRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/VAOGLRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/VAOGLRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/DefaultLineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/DefaultLineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/DefaultLineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/DefaultLineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/ImmediateModeOGLRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/ImmediateModeOGLRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/ImmediateModeOGLRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/ImmediateModeOGLRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/LineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/LineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/LineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/LineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/QuadBasedLineStripRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/QuadBasedLineStripRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/QuadBasedLineStripRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/QuadBasedLineStripRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/Renderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/Renderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/Renderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/Renderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/SGL.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/SGL.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/SGL.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/SGL.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/VAOGLRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/VAOGLRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/class-use/VAOGLRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/class-use/VAOGLRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/opengl/renderer/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/opengl/renderer/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/opengl/renderer/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.ColorRecord.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.ColorRecord.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.ColorRecord.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.ColorRecord.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.LinearInterpolator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.LinearInterpolator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.LinearInterpolator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.LinearInterpolator.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.RandomValue.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.RandomValue.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.RandomValue.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.RandomValue.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Range.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Range.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Range.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Range.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.SimpleValue.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.SimpleValue.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.SimpleValue.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.SimpleValue.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Value.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Value.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Value.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.Value.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitterFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitterFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ConfigurableEmitterFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ConfigurableEmitterFactory.html diff --git a/lib/javadoc/org/newdawn/slick/particles/Particle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/Particle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/Particle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/Particle.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ParticleEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ParticleEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ParticleIO.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleIO.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ParticleIO.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleIO.html diff --git a/lib/javadoc/org/newdawn/slick/particles/ParticleSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/ParticleSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/ParticleSystem.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.ColorRecord.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.ColorRecord.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.ColorRecord.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.ColorRecord.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.LinearInterpolator.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.LinearInterpolator.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.LinearInterpolator.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.LinearInterpolator.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.RandomValue.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.RandomValue.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.RandomValue.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.RandomValue.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Range.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Range.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Range.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Range.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.SimpleValue.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.SimpleValue.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.SimpleValue.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.SimpleValue.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Value.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Value.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Value.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.Value.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitterFactory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitterFactory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitterFactory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ConfigurableEmitterFactory.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/Particle.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/Particle.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/Particle.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/Particle.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ParticleEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ParticleEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ParticleIO.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleIO.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ParticleIO.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleIO.html diff --git a/lib/javadoc/org/newdawn/slick/particles/class-use/ParticleSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/class-use/ParticleSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/class-use/ParticleSystem.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/FireEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/FireEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/FireEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/FireEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/class-use/FireEmitter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/class-use/FireEmitter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/class-use/FireEmitter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/class-use/FireEmitter.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/particles/effects/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/effects/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/effects/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/particles/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/particles/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/particles/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/particles/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/particles/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/particles/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/state/BasicGameState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/BasicGameState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/BasicGameState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/BasicGameState.html diff --git a/lib/javadoc/org/newdawn/slick/state/GameState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/GameState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/GameState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/GameState.html diff --git a/lib/javadoc/org/newdawn/slick/state/StateBasedGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/StateBasedGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/StateBasedGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/StateBasedGame.html diff --git a/lib/javadoc/org/newdawn/slick/state/class-use/BasicGameState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/BasicGameState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/class-use/BasicGameState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/BasicGameState.html diff --git a/lib/javadoc/org/newdawn/slick/state/class-use/GameState.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/GameState.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/class-use/GameState.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/GameState.html diff --git a/lib/javadoc/org/newdawn/slick/state/class-use/StateBasedGame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/StateBasedGame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/class-use/StateBasedGame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/class-use/StateBasedGame.html diff --git a/lib/javadoc/org/newdawn/slick/state/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/state/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/state/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/state/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/BlobbyTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/BlobbyTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/BlobbyTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/BlobbyTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/CombinedTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/CombinedTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/CombinedTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/CombinedTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/CrossStateTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/CrossStateTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/CrossStateTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/CrossStateTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/EmptyTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/EmptyTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/EmptyTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/EmptyTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/FadeInTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/FadeInTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/FadeInTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/FadeInTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/FadeOutTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/FadeOutTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/FadeOutTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/FadeOutTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/HorizontalSplitTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/HorizontalSplitTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/HorizontalSplitTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/HorizontalSplitTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/RotateTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/RotateTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/RotateTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/RotateTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/SelectTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/SelectTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/SelectTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/SelectTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/Transition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/Transition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/Transition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/Transition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/VerticalSplitTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/VerticalSplitTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/VerticalSplitTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/VerticalSplitTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/BlobbyTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/BlobbyTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/BlobbyTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/BlobbyTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/CombinedTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/CombinedTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/CombinedTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/CombinedTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/CrossStateTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/CrossStateTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/CrossStateTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/CrossStateTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/EmptyTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/EmptyTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/EmptyTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/EmptyTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/FadeInTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/FadeInTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/FadeInTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/FadeInTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/FadeOutTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/FadeOutTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/FadeOutTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/FadeOutTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/HorizontalSplitTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/HorizontalSplitTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/HorizontalSplitTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/HorizontalSplitTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/RotateTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/RotateTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/RotateTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/RotateTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/SelectTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/SelectTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/SelectTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/SelectTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/Transition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/Transition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/Transition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/Transition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/class-use/VerticalSplitTransition.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/VerticalSplitTransition.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/class-use/VerticalSplitTransition.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/class-use/VerticalSplitTransition.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/state/transition/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/state/transition/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/state/transition/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/svg/Diagram.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Diagram.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/Diagram.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Diagram.html diff --git a/lib/javadoc/org/newdawn/slick/svg/Figure.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Figure.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/Figure.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Figure.html diff --git a/lib/javadoc/org/newdawn/slick/svg/Gradient.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Gradient.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/Gradient.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Gradient.html diff --git a/lib/javadoc/org/newdawn/slick/svg/InkscapeLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/InkscapeLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/InkscapeLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/InkscapeLoader.html diff --git a/lib/javadoc/org/newdawn/slick/svg/LinearGradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/LinearGradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/LinearGradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/LinearGradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/svg/Loader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Loader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/Loader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/Loader.html diff --git a/lib/javadoc/org/newdawn/slick/svg/NonGeometricData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/NonGeometricData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/NonGeometricData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/NonGeometricData.html diff --git a/lib/javadoc/org/newdawn/slick/svg/ParsingException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/ParsingException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/ParsingException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/ParsingException.html diff --git a/lib/javadoc/org/newdawn/slick/svg/RadialGradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/RadialGradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/RadialGradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/RadialGradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/svg/SVGMorph.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/SVGMorph.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/SVGMorph.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/SVGMorph.html diff --git a/lib/javadoc/org/newdawn/slick/svg/SimpleDiagramRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/SimpleDiagramRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/SimpleDiagramRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/SimpleDiagramRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/Diagram.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Diagram.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/Diagram.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Diagram.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/Figure.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Figure.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/Figure.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Figure.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/Gradient.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Gradient.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/Gradient.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Gradient.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/InkscapeLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/InkscapeLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/InkscapeLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/InkscapeLoader.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/LinearGradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/LinearGradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/LinearGradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/LinearGradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/Loader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Loader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/Loader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/Loader.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/NonGeometricData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/NonGeometricData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/NonGeometricData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/NonGeometricData.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/ParsingException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/ParsingException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/ParsingException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/ParsingException.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/RadialGradientFill.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/RadialGradientFill.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/RadialGradientFill.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/RadialGradientFill.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/SVGMorph.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/SVGMorph.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/SVGMorph.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/SVGMorph.html diff --git a/lib/javadoc/org/newdawn/slick/svg/class-use/SimpleDiagramRenderer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/SimpleDiagramRenderer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/class-use/SimpleDiagramRenderer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/class-use/SimpleDiagramRenderer.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/DefsProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/DefsProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/DefsProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/DefsProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/ElementProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/ElementProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/ElementProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/ElementProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/EllipseProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/EllipseProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/EllipseProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/EllipseProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/GroupProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/GroupProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/GroupProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/GroupProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/InkscapeNonGeometricData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/InkscapeNonGeometricData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/InkscapeNonGeometricData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/InkscapeNonGeometricData.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/LineProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/LineProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/LineProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/LineProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/PathProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/PathProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/PathProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/PathProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/PolygonProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/PolygonProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/PolygonProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/PolygonProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/RectProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/RectProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/RectProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/RectProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/UseProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/UseProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/UseProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/UseProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/Util.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/Util.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/Util.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/Util.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/DefsProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/DefsProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/DefsProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/DefsProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/ElementProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/ElementProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/ElementProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/ElementProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/EllipseProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/EllipseProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/EllipseProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/EllipseProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/GroupProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/GroupProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/GroupProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/GroupProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/InkscapeNonGeometricData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/InkscapeNonGeometricData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/InkscapeNonGeometricData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/InkscapeNonGeometricData.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/LineProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/LineProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/LineProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/LineProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/PathProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/PathProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/PathProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/PathProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/PolygonProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/PolygonProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/PolygonProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/PolygonProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/RectProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/RectProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/RectProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/RectProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/UseProcessor.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/UseProcessor.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/UseProcessor.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/UseProcessor.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/Util.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/Util.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/class-use/Util.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/class-use/Util.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/svg/inkscape/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/inkscape/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/inkscape/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/svg/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/svg/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/svg/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/svg/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/svg/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/svg/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/tests/AlphaMapTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AlphaMapTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/AlphaMapTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AlphaMapTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/AnimationTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AnimationTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/AnimationTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AnimationTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/AntiAliasTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AntiAliasTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/AntiAliasTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/AntiAliasTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/BigImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/BigImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/BigImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/BigImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/BigSpriteSheetTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/BigSpriteSheetTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/BigSpriteSheetTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/BigSpriteSheetTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/CachedRenderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CachedRenderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/CachedRenderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CachedRenderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/CanvasContainerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CanvasContainerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/CanvasContainerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CanvasContainerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/CanvasSizeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CanvasSizeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/CanvasSizeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CanvasSizeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ClipTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ClipTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ClipTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ClipTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/CopyAreaAlphaTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CopyAreaAlphaTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/CopyAreaAlphaTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CopyAreaAlphaTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/CurveTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CurveTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/CurveTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/CurveTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/DeferredLoadingTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DeferredLoadingTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/DeferredLoadingTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DeferredLoadingTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/DistanceFieldTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DistanceFieldTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/DistanceFieldTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DistanceFieldTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/DoubleClickTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DoubleClickTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/DoubleClickTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DoubleClickTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/DuplicateEmitterTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DuplicateEmitterTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/DuplicateEmitterTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/DuplicateEmitterTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/FlashTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FlashTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/FlashTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FlashTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/FontPerformanceTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FontPerformanceTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/FontPerformanceTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FontPerformanceTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/FontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/FontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/FontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GUITest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GUITest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GUITest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GUITest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GeomAccuracyTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomAccuracyTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GeomAccuracyTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomAccuracyTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GeomTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GeomTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GeomUtilTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomUtilTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GeomUtilTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomUtilTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GeomUtilTileTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomUtilTileTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GeomUtilTileTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GeomUtilTileTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GradientImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GradientImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GradientImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GradientImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GradientTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GradientTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GradientTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GradientTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/GraphicsTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GraphicsTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/GraphicsTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/GraphicsTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageBufferEndianTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageBufferEndianTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageBufferEndianTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageBufferEndianTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageBufferTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageBufferTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageBufferTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageBufferTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageCornerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageCornerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageCornerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageCornerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageGraphicsTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageGraphicsTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageGraphicsTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageGraphicsTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageMemTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageMemTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageMemTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageMemTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageOutTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageOutTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageOutTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageOutTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageReadTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageReadTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageReadTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageReadTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/InkscapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InkscapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/InkscapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InkscapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/InputProviderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InputProviderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/InputProviderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InputProviderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/InputTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InputTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/InputTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/InputTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/IsoTiledTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/IsoTiledTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/IsoTiledTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/IsoTiledTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/KeyRepeatTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/KeyRepeatTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/KeyRepeatTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/KeyRepeatTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/LameTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/LameTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/LameTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/LameTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/LineRenderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/LineRenderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/LineRenderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/LineRenderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/MorphSVGTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MorphSVGTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/MorphSVGTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MorphSVGTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/MorphShapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MorphShapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/MorphShapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MorphShapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/MusicListenerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MusicListenerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/MusicListenerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/MusicListenerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/NavMeshTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/NavMeshTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/NavMeshTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/NavMeshTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/PackedSheetTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PackedSheetTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/PackedSheetTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PackedSheetTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ParticleTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ParticleTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ParticleTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ParticleTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/PedigreeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PedigreeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/PedigreeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PedigreeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/PolygonTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PolygonTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/PolygonTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PolygonTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/PureFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PureFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/PureFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/PureFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SavedStateTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SavedStateTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SavedStateTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SavedStateTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ScalableTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ScalableTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ScalableTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ScalableTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/ShapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ShapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/ShapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/ShapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SlickCallableTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SlickCallableTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SlickCallableTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SlickCallableTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SoundPositionTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundPositionTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SoundPositionTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundPositionTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SoundTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SoundTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SoundURLTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundURLTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SoundURLTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SoundURLTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/SpriteSheetFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SpriteSheetFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/SpriteSheetFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/SpriteSheetFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/StateBasedTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/StateBasedTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/StateBasedTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/StateBasedTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TestBox.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TestBox.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TestBox.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TestBox.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TestUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TestUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TestUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TestUtils.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TexturePaintTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TexturePaintTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TexturePaintTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TexturePaintTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TileMapTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TileMapTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TileMapTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TileMapTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TransformTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransformTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TransformTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransformTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TransformTest2.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransformTest2.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TransformTest2.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransformTest2.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TransitionTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransitionTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TransitionTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransitionTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TransparentColorTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransparentColorTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TransparentColorTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TransparentColorTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/TrueTypeFontPerformanceTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TrueTypeFontPerformanceTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/TrueTypeFontPerformanceTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/TrueTypeFontPerformanceTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/UnicodeFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/UnicodeFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/UnicodeFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/UnicodeFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/AlphaMapTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AlphaMapTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/AlphaMapTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AlphaMapTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/AnimationTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AnimationTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/AnimationTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AnimationTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/AntiAliasTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AntiAliasTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/AntiAliasTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/AntiAliasTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/BigImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/BigImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/BigImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/BigImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/BigSpriteSheetTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/BigSpriteSheetTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/BigSpriteSheetTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/BigSpriteSheetTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/CachedRenderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CachedRenderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/CachedRenderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CachedRenderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/CanvasContainerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CanvasContainerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/CanvasContainerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CanvasContainerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/CanvasSizeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CanvasSizeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/CanvasSizeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CanvasSizeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ClipTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ClipTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ClipTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ClipTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/CopyAreaAlphaTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CopyAreaAlphaTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/CopyAreaAlphaTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CopyAreaAlphaTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/CurveTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CurveTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/CurveTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/CurveTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/DeferredLoadingTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DeferredLoadingTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/DeferredLoadingTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DeferredLoadingTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/DistanceFieldTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DistanceFieldTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/DistanceFieldTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DistanceFieldTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/DoubleClickTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DoubleClickTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/DoubleClickTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DoubleClickTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/DuplicateEmitterTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DuplicateEmitterTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/DuplicateEmitterTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/DuplicateEmitterTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/FlashTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FlashTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/FlashTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FlashTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/FontPerformanceTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FontPerformanceTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/FontPerformanceTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FontPerformanceTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/FontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/FontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/FontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GUITest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GUITest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GUITest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GUITest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GeomAccuracyTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomAccuracyTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GeomAccuracyTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomAccuracyTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GeomTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GeomTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GeomUtilTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomUtilTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GeomUtilTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomUtilTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GeomUtilTileTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomUtilTileTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GeomUtilTileTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GeomUtilTileTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GradientImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GradientImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GradientImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GradientImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GradientTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GradientTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GradientTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GradientTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/GraphicsTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GraphicsTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/GraphicsTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/GraphicsTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageBufferEndianTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageBufferEndianTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageBufferEndianTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageBufferEndianTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageBufferTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageBufferTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageBufferTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageBufferTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageCornerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageCornerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageCornerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageCornerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageGraphicsTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageGraphicsTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageGraphicsTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageGraphicsTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageMemTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageMemTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageMemTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageMemTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageOutTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageOutTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageOutTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageOutTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageReadTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageReadTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageReadTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageReadTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ImageTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ImageTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ImageTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/InkscapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InkscapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/InkscapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InkscapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/InputProviderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InputProviderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/InputProviderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InputProviderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/InputTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InputTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/InputTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/InputTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/IsoTiledTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/IsoTiledTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/IsoTiledTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/IsoTiledTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/KeyRepeatTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/KeyRepeatTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/KeyRepeatTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/KeyRepeatTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/LameTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/LameTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/LameTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/LameTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/LineRenderTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/LineRenderTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/LineRenderTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/LineRenderTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/MorphSVGTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MorphSVGTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/MorphSVGTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MorphSVGTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/MorphShapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MorphShapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/MorphShapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MorphShapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/MusicListenerTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MusicListenerTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/MusicListenerTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/MusicListenerTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/NavMeshTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/NavMeshTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/NavMeshTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/NavMeshTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/PackedSheetTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PackedSheetTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/PackedSheetTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PackedSheetTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ParticleTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ParticleTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ParticleTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ParticleTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/PedigreeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PedigreeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/PedigreeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PedigreeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/PolygonTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PolygonTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/PolygonTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PolygonTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/PureFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PureFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/PureFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/PureFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SavedStateTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SavedStateTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SavedStateTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SavedStateTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ScalableTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ScalableTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ScalableTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ScalableTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/ShapeTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ShapeTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/ShapeTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/ShapeTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SlickCallableTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SlickCallableTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SlickCallableTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SlickCallableTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SoundPositionTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundPositionTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SoundPositionTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundPositionTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SoundTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SoundTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SoundURLTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundURLTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SoundURLTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SoundURLTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/SpriteSheetFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SpriteSheetFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/SpriteSheetFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/SpriteSheetFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/StateBasedTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/StateBasedTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/StateBasedTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/StateBasedTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TestBox.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TestBox.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TestBox.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TestBox.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TestUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TestUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TestUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TestUtils.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TexturePaintTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TexturePaintTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TexturePaintTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TexturePaintTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TileMapTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TileMapTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TileMapTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TileMapTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TransformTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransformTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TransformTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransformTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TransformTest2.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransformTest2.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TransformTest2.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransformTest2.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TransitionTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransitionTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TransitionTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransitionTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TransparentColorTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransparentColorTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TransparentColorTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TransparentColorTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/TrueTypeFontPerformanceTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TrueTypeFontPerformanceTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/TrueTypeFontPerformanceTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/TrueTypeFontPerformanceTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/class-use/UnicodeFontTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/UnicodeFontTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/class-use/UnicodeFontTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/class-use/UnicodeFontTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/tests/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/tests/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/tests/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/TestState1.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState1.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/TestState1.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState1.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/TestState2.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState2.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/TestState2.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState2.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/TestState3.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState3.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/TestState3.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/TestState3.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState1.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState1.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState1.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState1.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState2.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState2.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState2.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState2.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState3.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState3.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/class-use/TestState3.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/class-use/TestState3.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/tests/states/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/states/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/states/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/Entity.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Entity.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/Entity.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Entity.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/GameData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/GameData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/GameData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/GameData.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/Inventory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Inventory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/Inventory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Inventory.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/Item.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Item.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/Item.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Item.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/ItemContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/ItemContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/ItemContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/ItemContainer.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/ObjectParserTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/ObjectParserTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/ObjectParserTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/ObjectParserTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/Stats.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Stats.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/Stats.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/Stats.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/XMLTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/XMLTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/XMLTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/XMLTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/Entity.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Entity.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/Entity.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Entity.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/GameData.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/GameData.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/GameData.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/GameData.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/Inventory.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Inventory.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/Inventory.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Inventory.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/Item.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Item.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/Item.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Item.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/ItemContainer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/ItemContainer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/ItemContainer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/ItemContainer.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/ObjectParserTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/ObjectParserTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/ObjectParserTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/ObjectParserTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/Stats.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Stats.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/Stats.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/Stats.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/class-use/XMLTest.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/XMLTest.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/class-use/XMLTest.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/class-use/XMLTest.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/tests/xml/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tests/xml/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tests/xml/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/Layer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/Layer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/Layer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/Layer.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/TileSet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TileSet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/TileSet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TileSet.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/TiledMap.GroupObject.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.GroupObject.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/TiledMap.GroupObject.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.GroupObject.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/TiledMap.ObjectGroup.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.ObjectGroup.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/TiledMap.ObjectGroup.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.ObjectGroup.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/TiledMap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/TiledMap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/TiledMap.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/class-use/Layer.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/Layer.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/class-use/Layer.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/Layer.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/class-use/TileSet.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TileSet.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/class-use/TileSet.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TileSet.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.GroupObject.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.GroupObject.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.GroupObject.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.GroupObject.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.ObjectGroup.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.ObjectGroup.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.ObjectGroup.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.ObjectGroup.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/class-use/TiledMap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/class-use/TiledMap.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/tiled/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/tiled/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/tiled/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/util/Bootstrap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/Bootstrap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/Bootstrap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/Bootstrap.html diff --git a/lib/javadoc/org/newdawn/slick/util/BufferedImageUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/BufferedImageUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/BufferedImageUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/BufferedImageUtil.html diff --git a/lib/javadoc/org/newdawn/slick/util/ClasspathLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/ClasspathLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/ClasspathLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/ClasspathLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/DefaultLogSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/DefaultLogSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/DefaultLogSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/DefaultLogSystem.html diff --git a/lib/javadoc/org/newdawn/slick/util/FastTrig.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/FastTrig.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/FastTrig.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/FastTrig.html diff --git a/lib/javadoc/org/newdawn/slick/util/FileSystemLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/FileSystemLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/FileSystemLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/FileSystemLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/FontUtils.Alignment.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/FontUtils.Alignment.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/FontUtils.Alignment.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/FontUtils.Alignment.html diff --git a/lib/javadoc/org/newdawn/slick/util/FontUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/FontUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/FontUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/FontUtils.html diff --git a/lib/javadoc/org/newdawn/slick/util/InputAdapter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/InputAdapter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/InputAdapter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/InputAdapter.html diff --git a/lib/javadoc/org/newdawn/slick/util/LocatedImage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/LocatedImage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/LocatedImage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/LocatedImage.html diff --git a/lib/javadoc/org/newdawn/slick/util/Log.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/Log.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/Log.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/Log.html diff --git a/lib/javadoc/org/newdawn/slick/util/LogSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/LogSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/LogSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/LogSystem.html diff --git a/lib/javadoc/org/newdawn/slick/util/MaskUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/MaskUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/MaskUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/MaskUtil.html diff --git a/lib/javadoc/org/newdawn/slick/util/OperationNotSupportedException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/OperationNotSupportedException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/OperationNotSupportedException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/OperationNotSupportedException.html diff --git a/lib/javadoc/org/newdawn/slick/util/ResourceLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/ResourceLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/ResourceLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/ResourceLoader.html diff --git a/lib/javadoc/org/newdawn/slick/util/ResourceLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/ResourceLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/ResourceLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/ResourceLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/Bootstrap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/Bootstrap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/Bootstrap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/Bootstrap.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/BufferedImageUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/BufferedImageUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/BufferedImageUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/BufferedImageUtil.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/ClasspathLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ClasspathLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/ClasspathLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ClasspathLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/DefaultLogSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/DefaultLogSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/DefaultLogSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/DefaultLogSystem.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/FastTrig.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FastTrig.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/FastTrig.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FastTrig.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/FileSystemLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FileSystemLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/FileSystemLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FileSystemLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/FontUtils.Alignment.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FontUtils.Alignment.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/FontUtils.Alignment.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FontUtils.Alignment.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/FontUtils.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FontUtils.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/FontUtils.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/FontUtils.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/InputAdapter.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/InputAdapter.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/InputAdapter.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/InputAdapter.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/LocatedImage.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/LocatedImage.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/LocatedImage.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/LocatedImage.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/Log.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/Log.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/Log.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/Log.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/LogSystem.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/LogSystem.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/LogSystem.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/LogSystem.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/MaskUtil.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/MaskUtil.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/MaskUtil.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/MaskUtil.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/OperationNotSupportedException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/OperationNotSupportedException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/OperationNotSupportedException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/OperationNotSupportedException.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/ResourceLoader.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ResourceLoader.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/ResourceLoader.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ResourceLoader.html diff --git a/lib/javadoc/org/newdawn/slick/util/class-use/ResourceLocation.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ResourceLocation.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/class-use/ResourceLocation.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/class-use/ResourceLocation.html diff --git a/lib/javadoc/org/newdawn/slick/util/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/util/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/util/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/util/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/AStarHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/AStarHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/AStarHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/AStarHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/AStarPathFinder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/AStarPathFinder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/AStarPathFinder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/AStarPathFinder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/Mover.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Mover.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/Mover.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Mover.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/Path.Step.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Path.Step.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/Path.Step.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Path.Step.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/Path.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Path.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/Path.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/Path.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/PathFinder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/PathFinder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/PathFinder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/PathFinder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/PathFindingContext.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/PathFindingContext.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/PathFindingContext.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/PathFindingContext.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/TileBasedMap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/TileBasedMap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/TileBasedMap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/TileBasedMap.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarPathFinder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarPathFinder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarPathFinder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/AStarPathFinder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Mover.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Mover.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Mover.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Mover.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.Step.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.Step.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.Step.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.Step.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/Path.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFinder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFinder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFinder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFinder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFindingContext.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFindingContext.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFindingContext.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/PathFindingContext.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/TileBasedMap.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/TileBasedMap.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/class-use/TileBasedMap.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/class-use/TileBasedMap.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestSquaredHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestSquaredHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestSquaredHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ClosestSquaredHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ManhattanHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ManhattanHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/ManhattanHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/ManhattanHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestSquaredHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestSquaredHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestSquaredHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ClosestSquaredHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ManhattanHeuristic.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ManhattanHeuristic.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ManhattanHeuristic.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/class-use/ManhattanHeuristic.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/heuristics/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/Link.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/Link.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/Link.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/Link.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMesh.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMesh.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMesh.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMesh.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMeshBuilder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMeshBuilder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMeshBuilder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavMeshBuilder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavPath.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavPath.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavPath.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/NavPath.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/Space.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/Space.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/Space.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/Space.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Link.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Link.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Link.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Link.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMesh.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMesh.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMesh.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMesh.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMeshBuilder.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMeshBuilder.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMeshBuilder.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavMeshBuilder.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavPath.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavPath.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavPath.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/NavPath.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Space.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Space.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Space.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/class-use/Space.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/navmesh/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/util/pathfinding/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/pathfinding/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/pathfinding/package-use.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/ObjectTreeParser.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/ObjectTreeParser.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/ObjectTreeParser.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/ObjectTreeParser.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/SlickXMLException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/SlickXMLException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/SlickXMLException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/SlickXMLException.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/XMLElement.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLElement.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/XMLElement.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLElement.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/XMLElementList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLElementList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/XMLElementList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLElementList.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/XMLParser.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLParser.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/XMLParser.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/XMLParser.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/class-use/ObjectTreeParser.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/ObjectTreeParser.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/class-use/ObjectTreeParser.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/ObjectTreeParser.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/class-use/SlickXMLException.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/SlickXMLException.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/class-use/SlickXMLException.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/SlickXMLException.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLElement.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLElement.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLElement.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLElement.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLElementList.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLElementList.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLElementList.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLElementList.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLParser.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLParser.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/class-use/XMLParser.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/class-use/XMLParser.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/package-frame.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-frame.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/package-frame.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-frame.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/package-summary.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-summary.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/package-summary.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-summary.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/package-tree.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-tree.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/package-tree.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-tree.html diff --git a/lib/javadoc/org/newdawn/slick/util/xml/package-use.html b/lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-use.html similarity index 100% rename from lib/javadoc/org/newdawn/slick/util/xml/package-use.html rename to lib/javadoc/slick-javadoc/org/newdawn/slick/util/xml/package-use.html diff --git a/lib/javadoc/overview-frame.html b/lib/javadoc/slick-javadoc/overview-frame.html similarity index 100% rename from lib/javadoc/overview-frame.html rename to lib/javadoc/slick-javadoc/overview-frame.html diff --git a/lib/javadoc/overview-summary.html b/lib/javadoc/slick-javadoc/overview-summary.html similarity index 100% rename from lib/javadoc/overview-summary.html rename to lib/javadoc/slick-javadoc/overview-summary.html diff --git a/lib/javadoc/overview-tree.html b/lib/javadoc/slick-javadoc/overview-tree.html similarity index 100% rename from lib/javadoc/overview-tree.html rename to lib/javadoc/slick-javadoc/overview-tree.html diff --git a/lib/javadoc/package-list b/lib/javadoc/slick-javadoc/package-list similarity index 100% rename from lib/javadoc/package-list rename to lib/javadoc/slick-javadoc/package-list diff --git a/lib/javadoc/serialized-form.html b/lib/javadoc/slick-javadoc/serialized-form.html similarity index 100% rename from lib/javadoc/serialized-form.html rename to lib/javadoc/slick-javadoc/serialized-form.html diff --git a/lib/javadoc/slick-javadoc/stylesheet.css b/lib/javadoc/slick-javadoc/stylesheet.css new file mode 100644 index 000000000..6ea9e5161 --- /dev/null +++ b/lib/javadoc/slick-javadoc/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF; color:#000000 } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ +.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} + diff --git a/lib/luaj-jse-3.0.1.jar b/lib/luaj-jse-3.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..e1258605e4f05332759ec336bcff2f5b2a444fcf GIT binary patch literal 354104 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 z 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%0AJhVaYG}`8VR$ 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�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 z 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
!E8NP5V5Z6 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%0DG73ELl_d zt|gB{9==J&oJ@n1KAgT(a%1qobm*)~U?o)srRl4A*zjSOFpBV^1mmx-8Fi{ECPH|t z30VQ?IV#U(Y^p64CjJy;4+&N>DP)|el$L$Q`Wg5Htmm`r=C&4Na|!O!nJoKLh!@(e zI#_KHs_OkW31H^F41$;EXmqMw-vh8xc+gG4sDcIh?}c^H%KrDwj(BZNNHulv7gXH_ zB-TbrJFjwLU^u-2t02Ciu*d{&hJf4G@QS)hN)a`NeuoSE0$mjI&i}V4oVm8}wjIun zP^+g<9D0*WxcdKD6n68BGBZc!t)v0)N_5bD2X4JUHBTJ7Ac6hAJASm#7i(=*Pe6T<#`D=9X;Aj?T*0qCU^9(0IIZNsI5#^Ie%5lnb*5)yEYdu>sPC%yGF z6o6!CptqRYUW{Le16&nGVOWMSgTs)wGvRha8|O&NLLwtc1O{gGO!H~SxTRogr#-tk z=O`dKLHB5rn!aL1{(Vg)Tqa8n3uK~SHO`u$&HA$P5r52zQS8RX67yJJ6aF8M;~fqU zX*T%piiCLq#+!5hVv!exuK6_Ozn98FC^GUM-H{i>a+0v#r2C&(8!*3*%+QJ6t7~P- U4yHxcLW9^8!(q1+C?wMV0j=rEhyVZp literal 0 HcmV?d00001 diff --git a/lib/luaj-sources-3.0.1.jar b/lib/luaj-sources-3.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..9e8df5d4b9910efe5d1693d0b90119c72daeb76c GIT binary patch literal 517483 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

jhvI07F8;X9kxW_ijDc>G5&y81?AmU@Qxh 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 RasvLlsf!?+i(%qM{s#xrD$D=? literal 0 HcmV?d00001

hf4J9gm zWmSnDpdgz7UI3*fvj`k$8oChJeoDB|v=MQ)_^|b*dGb8H7Jpk_CKY0i+q|Qzf9Hs- zA?MIAJds6b9O`(6uAaP>xn1T&L;15T%2roNt|%n42FLTh7)%`JEHc(}MoP8*?uo8R zOIkhz6*!iUe$FkWk$zHa2Xfz!_pYmca_ojx1F10Zy(2sh>U|oFxEQ+m+TwjG z<3_HvYu^0Z@GG&6;J$Y@xH<;fLyl^);hq`h8%cVuO2+vZS5_r^r3(kv%LN^fI3F^q z`d%-J>qZ;$1Po}%%s>hi#{mPvWsM_E67B)bJ;S8SW0W-?s;<1!`R$FXZX;N0c zYIl;tXT`z@P+@z}GM2Q>%fuKz32POJDQk3lZgf+wOqjh~ll)#E2Stg~BKQouwV^av zdj~s4SN$8M55h;u>mhH=CIdyDDuLk~hW`7?rkM>*dn}e9d+X2(ik=DtOPX+8Pr?x7 zPS3R)Gkd$Wnl{Cj$6ueiF7jXU*I+G^QL8h$Aag4_U`e~$sRvxP0-D}FDBW?!Kj?UK z=Ja%>@&1t=b(R6qRqJ4efyjp+!hhYZ#Doqr*3iyORgwz=QuR5~0B`6OTH4C6)-iG; zF!7s`!^K}KNU=ZPwF(H-D$F%$+Gzq->oOq<3*S1s5avQyIocdA+^M@QJqWMbNW4y=W9 zFH@!xuh;)Er0|FjXNu{xknACI;S?WwENqpnv6wsy1cLO{(O)PK*UbORT!1ORd6Y+7 zAw|}^0lLg%qHwO!@0LXafPYUvtt|FPVLPG5Gzo!bX~xo^mkSE(M)m=U(2IkUB&f7W z0M!l)J4wDPjQ2=U7RO(`$74GH!CvwRf7Hgf+M&e8&Z)$vd)*CB3sre%;2D+Re0-e3 zHUFh9!H!xuK{T+lJYA+@Z#zo_f z9Vf!Bsshp(TKz+m^A1}mx)IUh_|;SGANtUtOCKKo>i(T6aMWa%ZUB+Xgh{PdJEzZB z(`$OWr}JPrkxH9&hV3jYp~eNlRp1Dzc)-wlqRbzD-hKy{wF*~Y>qqLm+k9!>MWLL` zJwSD&Mc~W;Q*NN0Zjx5Vtu~Blp}xo=b5n)Nxl&{8Xr}X!TGD=H$$J%XuhI3U&1!oN z<>Y6(zc3Qpp$u2Msz77GcDwn&AcwFY?vHvwIdZxt$MuTwbwi3mX>qFzfe_|A=F9;{U zh@A+0EP-o=BR2>v4`Fx@m9Uw3wnd(1$fEW%xr-)$5G8*zC4;t?9lpyQix)I8$3ge@ zXH2&E#fg9YWU>T4V;uZzRCxh6*|C;j>pd1LReY?Vx4oykQI=BMbSEW1J(IL@S;q|3 zOow1BBa0;@pS=Xd%#AA_HOHxMipthl<+Lt~X7n3m#{WyhMLr>sw`PIU*+*)gr91rio?#-LR!VPfiH%cVU?6;PKQwWs)lED zLbvbAXC^p8;H`?&1XfC>Ea%fn0)T-`Z;}_Sv`{ZuBY>S*%PJO)J~5$eGOy13GBYR z+bPkq>&^Kxb=@g*&Hmhdt-tDP9CruD>z&Q_7-Asi789i57G~e!zvK%>eK6=Gjo{x6 z3iwzoNgSlKQVPXSNlk8MK+|;0M*nNO^UvGOR!uhvtW9fR(G)p=(Eh8?!BlWtTr-H2 z`>U7kh+Qu*H|+J}_a_C6)vc+3Gv4O*Gz)5Y(`B~!^lxRd%)GJ#^g{`hwg_&yZ*aXc zp5pQ7CX<>w3EWdqDJPA|JlqToy8hDfgcOtxOPESI_sv>bZe2~z8dc8g*~sOHYi%oT zWJ37@sc`t#j0??|fTpJh%Z<$WPe2AYpo3b}QJ=sN0l z%x(7w)Wqb!X2dDxe*+*W4;o%g59KB7{e16{VS;;mI6ce9y;q|p;D4(%#S{(uwlz;2scJ!PxjJxmwVyuK)@Dt%*b*tD*fq_sD69Caw$hQ-%2m-FS41s%fj zE$e(-Ff=ESN*YtL;8)4s&Ri>(Cp94fwDcy<$GrnqKJHyo(k0uWXhO|y%#WGF`CI&r z>Xi$e7vzO_xV)I?5Y9%so`v!dp9@cA5;m?M6a=%0;#x-aL3!@DW$fO)O8H+C6&yuI z@s|Y2I7Q4V_0l!e#F{p7c5=fJ{b8K5f%Vg|E2QB~X4Femr;}v4 zOu4HoYfK4`<72G&ZJhI6E4LB7&|QJMx9pv0xWH6O9`X;@IUf33 zER2>PqS^@o9mU=J*jaG`BNhQKSn)sxMfY6n?)*l8bnX2w1wNbpqgU#; zI*s2Iyr{>Uo{9Em ziY-L{&M}>Pg1$px46K5C3%^x%yUt82UI2WjydbF$(rU6NUMu(bb;-|BTYm zM)b!m_B(%+dkHA`)RepX>KD<-2dsYmy`|~N?=zh)B*R{GAdYtz0;7WKAkhzt7^Q&F zWImPZ2P|tJfvoYJBmdGOFJ5vhUb|GrZbV^A@RxhI+fK?I{)An&+84oUj|;CQQufaz zpdN6#f6)8Mmoj|Tgt_+%oaj7w4{Z>fLi?_-hLWgU$?jOj{_ki~7kk3D=*u2O#|{*E zVqFTjB_B~$`h_szuHw!acV&7Q(#RgHLoV#b&kqs7LPyE$4ynI`TsN}N&a|}oLr4vEbZ+S zT%7)QaC5)iPjEBus6OLgN=neu(`s5T0~;~_*{J)Xr1wXU2S~Gz!xFRy~v!2%R zT$!^GD`xHNyVzSG4)T}e>~joGR0v!W`<5-?++bWQH|59?Y0AE!;MYAtS7jAS*gxS> z7t3N?(r~m$?%Z(jlNZvq1Maq$#fW~fwBSE=AW+5aFT1P{s#>t>q>v9Cxh7dQoyW~Q z2y~vvda&d-3lpOBr)Ov&%T#pc=W|VOWUpl=g7=G`NQ4gsixa5W0()N!m6^}!Mr=-AHG#>t7LmBD=c>W=!Vm{)qt4Vzv0?n zNU=xD36JJ;g)f$kH9_U+bW#aM@PPkwzH6Y1`nf=xLzG9Af;;Y`xWzmsn56LcBQx!u zQ>OuWB^7Ej$|}84`}ZxWO$(z@@|GDO;mR$hjWT%;92^=n&{E>N)Fgw*UJNs?l@;jeTI z>0~?y%9>CCy#8%fMgiSOfd3#^l5|Q5NtlgIG(L$cRAZM%+`gS=Ka>0kZg4AZrEx1I z!SL)ljj2&`Usm-hUThhz=U*by7}kN$1m!putS__VzsyX`6OB^)OoFuyUO+oh3FLi6 z6y>xq>9v2!SkW0hiv&$Z#PO}(Hr5QFt5-<<^FuhzDI50k8u-P2FML++OdaN(>sy7( zL-$DH@yd;UhFjV`L-;^$o{SY;-&6zU4nA@AkLZGe{mC)37Y-;{d|$pmX)Jh6}s z{wGMt$x&f9Yy2dQjXdHY>(?X^+;WYC9dEsV^WPa~d)xo;N{f2E*W`SqL))uif8CnS_J`kcnt)Bd$R zvx`mkbhAHM1Mi@z*S~djg%H90$kJfP4!q1VOU}!2)y#cv#gbPe)7gEyy^8)PT#LKg zGca4(c2*TsyOed6HmTW(8&9w&8u0*2o=n z(sK(7G*W(pY3quuLLg>q$s9hNaJ6AtE_awZuWYeuuty2l&!7L^TFAOvpbV(Fl+f?G zGMkP_m#$)*Ms{;}D}GLK4$y0!H^OG5OIy>Hhe~hfaJvOeeQ^aW;2jsB;GCdhyKX96W zanSPEhO8&3BywRpl0@?%lQQ!~aUOqWD`~bf)rn7#7$}{vCuB-s8YF{wqD}{^-EWIReRvSK>la* zLHmZnj}ZU>L^c3`ABPaY-pQQa#?{b@-p!VY{=aHN#?<4#b%xEpw%!Y3jW^~e>NK1y z&e~)#l0w>AL1$8-wrCgck6>M$uy+@0J% zhnbuC{d8~Tv+-7;Tjr!S>g9u2y}vF0$<57Aq1*IDoLV=lb+O;35Ew1 zYgpN^m8DCfP6PC^C_XCqD`Fk};^~}mMS3DeA&a3xM;ebn-}Cur_A52k`_6fs01yGG zSbspgH&oQmNOJajk>Kolcru6AM3rTYK>b=K_e{g+M-_vb4QOKLL&poS+~5p`X1%fN zuZWTd+>Rqwbrh2KGGj5$lKC?*-&u6&kS*8>v=UJj#H+uMqMdz$(Mry2Qv8O1Viru0 z584_^S$u!JVCNLCAi@1E<(G6mWqbxXF|sSw;4{S_njO?6NeeDH01eoa=B)sGBAN(< z-*+fEJ`2L8jX}4NFr@c8FFWY3oTG;rj5)`zEZp0*eXesZV?&79^K2~lJB#td&iaFz zgo*zk-do;J?K=A{`?+~Vz@~b#QfPScq5&5MsCqvxTe<4nu=_UscUZUKU#%zbgT^fK z+G77t&0(1&(DD`TuQvAVy@}l2+g;Jt6}-=7P=(r#LcRfCR?G?zR~H6cSN)s^_^|U+ z6Au=SYXJ;+Acx)!f7TE;F8d$RA6rp7Fr&%_F3VNZ#y}7Yw7_{1LiRgo4)Y4q-UL_Hx-CP^Tf`! zPhG_FDDHvRvfs3X=VCW9hbw8{`#_sce}CYE6srE!YKlLj#UHvRik~w@46|t6m>RPa z7G=}>cEF_bn%}5V6qT&s*~d0hxU`esTNkPB=Z7<$qWHK{D4J3FdgU{09zD2RY0AV0 zzKqeVH#vWMG(l2Z!w@y2Wk2vyfRPIn$rkY(z2pJjrS({V1Ds!w$sN&iF;73B;+7Vb!9S&L=IUB~ zzk^+Q{V;m%D=;j%q6Ugsv2$FKT%HmwO^0)r$_5x+!M{UyHmFv&!6KTI!FF&zpp|2y z#5i1FcDi^^vt3%AmsNRy;*C6@L-WtKTX(Jxj4CnBPB+mDg0Fu7B?N*|2n(Yc_4?ClQJf?7u7!rM)kTF(`J?+W1{X6dglbwbS zK|s+Z`ja77TFnV!;MASTJAx0 zj_~_W_}wz*C~*Sx0~Z{+RTleyC`W98%gzm6urvN*)G061BqqSgoL^)(vZ30Zm>(Np zhpy}u5a@}*b<2UGxF>SiY3Dtd0O)50bhNh1c)i*by-h(-V5ibAL_8DoSf_-bv{^C&M`IZU@<0rrApWGOR4-|C zKlQ!};yBIo504O~-=25Jf2#-QdC#p#S2qhN8(Mz$0vM%f5N~+!b_B@b6?jtb2dl*S)uVYHY*9 zZ|vO66!z0!*=J%yI((->6h65hi}o(~4S;cf+xgq;J&RotytvjbY$u!P$F6tIUs`)~ zno9+r?rbNQKny-zv!j3fyiy4K>zzBqa#Y~zgB_*%+SiOBV>Ku5j-sUt>5FPqgf?Q~UTJ=Uf!)Hyi&(^7t?N zhy#&#ShL9jBvP4GW@Z9;3Pb7SCZPEE9Vdc(pber#0tB_|dmIJIf5cI%A(#FvzGT3aC{!MzPRzbn5Xy`7zpPq~Ay9R55^pEc6$+B7o7t zazb>E^C*}2h|tu7FpE=X>vRxzyCOtazKFR0b;75Tn zhI?rdVE#g!CFoTE8qD^6EQ!2XyWn`ER1&py(Pzg^GSqk6`W-Y zOniBnsnw}f@k|l;yNimeOSyD@On%|4NQHTbS+u3fbb-A9Drnfn=1D?^J)u=!WNjp0 zCG05NZL&lLgr!3@1kLSJL3z8xn@AFH9bst$9SdyG^urb-4y_xh)F{WpgUlUD06LnK z_?YW}>7II*1j>4fphd)Qv~+Cq)_{CTmYmXhGB%^=2c{n4dz=`|@%gu7U(G10X_bkL zq+`LQ??;t5a1Pr8AtApGDB>YAW!oH}W%}DulHuM$P4qMWgEKQ_XmK46>~Zrns5b}+ zpf%_(K6&S$-Nnc=kZ53k62|Yu;}-;B0MajLXXRiph7Z8%iND~$pugdk!(%LlfP9Hi zW#~Vx5Bbh$fBw?m+_|0a4K~tTzTy?d4Bk?LE}Y_da&FO{DZ$Poo`$?0&@9h zXW%dQue$%aO$tAw@dP>a3vfXmcJjVSar5!;9+M*)KlQwa`R6{2fkV>w6l2sv{Ib~Z z{C65i$Tx@BsS(*J_|C%PC@-*V@sD>eCNH4z*(BA^m|MOLVsKjV1kjr|t5}Fpm`DWh z8TiEf44I!rxdw@(zUlMjIE#h+K=FDzDz!uC&1VT;CEeB;sUInd2=SKpL%fWR+3?q{ERG^RmdkKGO>2wfDqD7RPVH5EMtOQ z{G*zu#s<|E9d$R8S=0Glm|&2DBLxF3rtPu@SN0zH-P;n#%23{-g&b=_4#bvzTwB` zAo!m6Tn)o0bv;L?Xq?}crUf+ZS79987}s(9nK|IWG?tV%cJt=%g;an3a(-*=h=+1L z=%H9wrv}>c!6&)AhBlFx*58`z(%Oi!!H+3CmoqRmRjkh!m9XuAA7_G056>J&6V|vh zSS2C&f-=b&OAqQ2N*78&l_ZaS-p;h=rGhtjPPdQ@kS)l>wIo4oi_&Ic0zfwn&8qpg zS}|D6DEtE@jHw@k9)X~ziLPOOqd(m-w>tQ5tBSx^WRB@( z*1Q53-e3M4x@5$=xvX<=Y~bP)RU}LqHx)489#}4d*HB2O=0?ttGr)mWSoXsQS>=#) zvXZ{4IC+r0jEjU6pGA1d2;}Hb&eS>D+g_$)kCFd(y0wfh#YK|NzL?h8ptzs|+rEH5 zN#Dqy;+h?E8)Ys!Ld#6F8rA5SKyL)Ez&V(N$7$HuD{i|--M2nTm-bsxJ z`mrIF5v4I|^M|sN@_Ao=KdD{z9>%^|I*oWG7?|^pm+m(*PLdHep?R(5Sfc5*mlycg z34Ke%Bc>Fowx;3U>^Irr28S3N@Qb9iPrVG?fg~XlzeS$^U(j(>G&3|SJ6pc3%?2wX zo{A}2i|7e%mFK)_x3vAJqNFV{PmjW~K_zc%lpAEa-TukoNx@*x1>#SMv;~Ni{*0Oz znE#;boSFmymNeS7ZB5&@ZQHhO+qP}nwr$&XPw(vAw;Qo<^#>{{vogQLu(kb0c+)f0?>;AO=#3i0w4b-%4a-6 zG_C~_{UHpOX48h`cb51jJDQLwTcV!)c$=1XLNyM%Ebgs^e!;>Uoevo#PAzvZZFUROE|@x9NQWrhz*uTxlrihzhVBz%r` znJR?cE_d|@Iq)QLgp>x@1+h>`sd&I^;>2Fg- zBvxCKkQEQ6y_VfdPfoj8Zgk5~dbD~ynJ_U0CUI+WA(pvSSAcI^D4;0?wUFDV-JKEH{$#{;I6-F=EQu(3&imXri=Vv)6)}c3GL-!1 zzFISPHkLTa82W-nxO5G<`D1q{$@T7qB*L$PStVhJ4k-L8GW9qeH4&O{_+}_iyt&^7 ze&yEH_om3zlfZBO+m@e8=r6*45v zf{BS{xAc}ssO=Uj0)_?ZQ~2<#ny@n8TW=n7Q%*J!Wk}bmc^N#S597D zJgq&m(P?2<+8pXwXet7;9s$5}1gj?iH?M?m zQ`0H@B3UKEf-}TILe+%wF@e8O?9RqFSQt9KU}bjzE6g8M|WH8FK5% z()y_HnL|+vhQBV8$ilJ)d~HK0goz~9qGp2o$DI@MRg>UJ47Lg1;urvWBWruc8N#IB zhMBCE>}B-n6;3wdty8W}W7h#LNmA;cxf*Fc%QC-D71*VN^hNtkovpqR9ZM^$SzgOo zcA&3<&p)~T5a@iJNrXA-tc-S9fS?~GP;YYzX+U}a0nNS2veU0GVSm@Qb)b%RL zPn**cQ8BX2?1@o@U!Sm>;8ZLgy0-o`9ZVMC-jR(li$WWO_ZSp=QY?3(n5 z=+MX5cDP?(Jv|oeKoxXwo2Dlff&k8j78Uhr+n?$J-{f9il>yctOMt$08pH!?nOQjz zJt_pEDhPUCw|Cd)kz7nzGrEj&_&c1DQUY(*^5R_L{cB86*m49i=&0{;6)Vu5*;a%z z?ZE5vOjMBxkmSe?gO$sG?v1r_l%enfE>9^}cm)3qO5^1#{=5`E{TpD!&JO9)1`sHM zU1NkSkx1mo%Mn~6Qsmq(_!*B>>^8!xU+RN(Can&_-if2jeJMC$7@;Fmt&jL9a zf3Ze{mt~yL{VJN|#@2`QtkB&9_SXmuJl6pms=CA9F&r$T1H|`~* z8{9^leR0wS>yUG|H(zjKz?HsWiLP%|cZYzbL!{Uw6K8l+E!~Vat7(CgvzE866E|__ zFYFK(VOmBCu;>LsxQ}7)_nrDSOKHe^1pT5rS>`N_(>SoMy|jOyiE@{NLpZ*pFSEtE z?7h$Jp~}2k8V-}F3mY;rMdpg->^d3@2a%00=#?Z?RW$9J?Ap|ZFlI=UuT^xas&gHl zc)6&R$5d6?PN>i9WMI+mDKB=x`Q`Ove5xz&I`&Snw>nYI9=-+G)br*RPvyHj z)GnF?rV1a$Uksz>EA+EOk7lEw{AHDqubh`5vGDu7-x0&otMhzA9mq70%E|fu{L9H7 zEFW=F52jRNn&9awCm~)K$p6OH;eU4m@8v0cRQF5eW0s}zbiRDvl|7FNS7}r>4Oo)s z$SsKslqXox@1q4e`+j$o`+(;@dS-dg`+m*OS&X(L*cWM&{@~9O`#l=2{zHqMhK=>{lm?8|V$K)B6zZLvp_* zy19xhZtOl8XJHalZ`$gg^v6)T_{_X^YBJXtlbSd?^w=oXgzNWUn9PYOValc7+qw^c zK465xaAS(JBtex}c;d>hw#PWrZBk`=M$^PC&Q6VZ0hB1&K zNOn`OQE9GLHiq)74z;>LGe6eqE^|}g%{y?%+S;n=XZW!P+3aPRZ;2GzaN#bJlRrps zZO``MwjMw4Z=}8LZ=Aj4uT|U*Jki|^Jk4DVT%q#3@BKUf`s%`eQhDA#@A9~7UJoqI zT?M>%tGXF284bHEQK(%d&c2&op+Zjq?mWW4k%aW>&+b^;uwvEjD}I~0=VPwv51W10 zs7@ivNs?>?s83!N!hx%k{ILjbqeQsfSn(NdZ<3>x1zpxsNSy|Jwp#n%Wa`7q(%YM- z-tgSZq}$8Tlbf!)o2kP$hH6f4Z(M5S?>G~MYBB64L>jUJ8#6H&Wq4MOnr9h{)Y(>< z{;NTJ9XM@b*1#O`t6!;Iem&iF330G233#5z5b*ZE99o03j6uiPA8$@L5B1A_=y0Oh zFj)5*t-FLDrARVXTIHI_vvOC1VUUnTV%4v%FFq^lcLACnD zMNq~D$t=5fB3qlDv;$KoBKWi0WHrzMnP_CoQ$hn@a;H{*n0iYwY_nFSdRxbGqn8#Z zgvax_q?dEk2%I1vJ1Wy4+V|?v%D{qEXFD4} zS5XnrJxX9%W>k0B8mDF!18MKrSsj}Ne-W~_TdY68fX|js z?)~YASk+<<`J$WXoH1s1=lVf|`@kWItYE3x})WE(( za~uiU~I>?i+tG^s^)wSAYtXO5?I|V9$_2!k3dH5%LFpd^*J+U{)0H+5x826*S`S zK`yy17JzW@<~W#2v2nL+^gIE$?b>xQ?M(l?dk7K(WN|=7Ue#sUp2>paqJcqfAos0x zYj?9qUuj%_juQ?LQ8MW=^M=C-l+%8Ja24o2oK3-q5EwrpK!N-Gk@<0G@T1itG>IEK zKQLT+D~FK0plSsH*L4$M$w2vR(aezr3xv(3NEH^`q4RLq`($yjj?6S_@UWQ%BX-%O zwv=a-^BZNR6$|Km-J*VH-zq23Ty3J$~ z;n?H#nOrltZn@c5$AcDS)36WJ;wq~y==b70H2O>j*B>t3zfIlpMXw&!Wx*$9* zCF?W+A+y`GfWn}TTD#`x0LHi;oxHT($&|U`97)O1M_c>N6RcP#mX(rga&Yyy0UU-{ zfyb2;!EUhvF{X1~bF(T-bZzXm9AnTRI(6-+f0`69t;|`CmP3%5=65LWvwvE8L@isN z?J}X$*ys~W!DRR{&-r8uZ}Yv#M^B$LJi(+urp%8TZ_iDfsfx+%s@oPa!DJw+ED}S= z`E^_XsvL?I4asU-q^v%NLM-$WaHpSxhSX_>LTR%IrMlRm;t8k@O%MU3F)G&U5tZx; zoQFWRdXdHNMrdzmspwFy9ldkcO$G&lu8o}DHP+QvrwK>gPNEPVWTFhS49+24nKR2> zDn?+S?n+>OFhN(O1m&1w0OWBl5y9BM?~t9C+B>1WK<{DwYGSi0PK$y3zD|14})cH3<;ANvqX`ry`9pMg9SnP=uF+y85qzls6DA0)dj=9QY8*R!JPi)r zV9#+<6isBfEQNDfl=|BcVv(L<-@IDk0$)hH%_4usUjz;Z4l5HK&cOwuiJSZ>b6Lh( z8($KfI{rW-E~iE_IS{+%19H|>%4r4};mdlnod9c!-Fuk=@zmOLT%S_aV}ghGV6GmNu1Fq-M(vov*$#SY17;|CHD+7KR(r=f$&d;z)TlrCDMFYapK zqZGiI^{}0nz_KoPP~N30kSJXxm^yAkPO2p>N#aE?Nm@XJI}dp*X!P>Wkn0d(SSFaK zIGW-pBTB;d)vPT_9+Doz24-LL1|BTkKFmQ=NJiseeDz_m@Od z8(^pSh?Huc(Khc3c-}IPls8je$Oo+cb(l%}7^m;DxKJ3R;o*%c9X=Yq(u~I*W(b3q zUM6kA82_~nBoBiKF@;xll-zR~qe)+A<%8%4!U`&FpCuoH^o%-?BGMe3I0Kzx;1n>1 zS5b?8AZn|hiEYvY&i1z!$pW_5`rKrxF8ivl=uni3@zt;BKNh?L$s@$F%qy(o(m~Ue0GV*At+myhmrhc{q1twC!u-0ixJLHJWvC=N6HdpMw zPpV2J$0kCRLA)R*9F6q5GrMd!odY=6-cJwoe%?OK1V}rBa;l&F#i(rhCW~{t{rm?4$0G(g)6=2khYp&&Z_%pu&`-=Na}5>(52!kMHbM?f!9DDHLJZyi#T5p1@OAtA;HAT=)8iCk_^P^D9?GI zIJWZwd+lkkH<)`1ga)-|HJ+Sn&pWf$=&*bBkRf~~D2TQfI#DlsVv`Gpe2Uj%xohH> z=tgis%@6|+lNb@jv+aL`+MY=`$1PdvEXrmkLIXF92h^p{c3GgI=nF*nX5QPI_0Qn#*r7GZgI*e z?YyGu^|>EP6PdB;(Oh-jJFqc!k5&VC9%Z*6bBS$JK)}m_Dn;4bf#F7(`My78-C1mW zIsixEDD4EfW2bKf?0}?Dbrc(}kP0`l^AbVVeG}*&*P$fHh2H)6X`-YgKeT`{@#t#G9r>QzU*I(Zc<(&Vu|P~W9Oq01h3C6y z5(4!~cpMSRblY?dVN!um?GljGvdy&AZ`=4gJOf9DO#1%vZ;>S{r~oVXnbW)RGj0Hj z0*-YJhS@LAZ8f~|J!#Xoc6UX~<%O;Dw@=NPQcAfs)BcYB8}bfB17&r^k#^PCRhxV` zHQ|7KgzLnAZBCIbD3`@Lu_opK3p-nVUt4I5#-|#C@@ur8ogoEsGm2g&C=05tQ0c|Z z7P9&nPDnI-*LGIRi62uu7loT%nJDb%Mb32jFQNL-NwkSuuL8Ud_oB$F9MYl+vk>GZ z_Z@=uHHlu^*q9mC5($y~rnI=18jK?g9p7MiZR(xWGvkhYKOB6;(MOWDIDluYtJ!Qy zxU75rec-X$8ahhHE}nr2ETgkB3it#j*0K6QN=XYV=-?%$X@yja7~n~cHgOQwL{;Lgoe(ponW zH(0OhL!73Vv6|z;3S^%{P&oR%V)syQA%vwej8@fZn=1i-WOef$YSCI6XdShZR}Ell z+9B34>iKzhyM7a{?~P>_)wcFrEW`(rT)|d;Y3|!-QEFa6sgCwH7EC=Ea8ki}g6eEy zF>Q94=8PkmanT0j8;_aK4ffuBje z=Ke6-I!R$f<1T?AVxbQ2;Y47<{Pcee4kf zBf`tcV)mj!b1d$v(}3KGVXa?cJ6~2c;6qGc6`_DXU8p%^t7||z;u(p)gl#2oyL)JJmO_t48A9#g){kcqL47zj zGJ=Q_U`vC6;uAxx9Hn!S6&;Mw*vGng%-h@dv;k9*kaI9|6{G6L$8HlU_C+ zquLb&K#XBzwv#In*gnN5Wm~o+sv7VKq79#VyCfP>`DW)zG7A5eohXI z4CU^U2=A~Z)?#9p{*#HwA7kuM-&bf64x0i`kmE7eFsxmbi7JVg=blMc$6zy@>0Qdx z9LE5@O`tsq z0)a3rrYap)O({BKua=Y!gcsM{uB>e)@_X7cp*c7VBYg%DE)DZ|n>A}ZUCM@Y=6c^8 zy1e#IVXICGIxbE>VrjSIqJxa+@}v49X&b?s0a$TZ?LAj)@8tcpGOjpJM}FdyKm z_ANgVmS+w>=gX;H1<#-1qYm*B*Oa{{t|^ajclmNhfIemPw`c5o2E^9hZ~TY@6!Nsz z>miJ6VB7VPYpPVR1mxNNf_QF^c6D6SwnglTI8ewQ)pDes^}~wF$!}N|+3Nk_Ya_X7 zCq`P2tr6sU zQL|Vu>;KK1WSn7nWSYtfNM&=Gd-n7)L;RbImQw`CmHVCok99p}x$?5#U~eJAEA{*K1fuG6^P`96+V;i5Z6p=%+&1ze1Jc&^1|Z z(+jh#3#AM;gYR8FN{0Z=((+S)K&i-xmRNxybipS+(do+Y?qBj8?XmO3q@L_X;Uo;s zqtOUDxs}eWVdehb*Af*aSYA|A0i;N5OT$Tt)NT$(fEGC{JB<`RFAXt*a zw!lu-v&bL}IiCRDbzj|6FkH~yD(BH%w5AV21Azq(BqO3r&5~-W70O&#Ym)J#g8cGa zc&)mg?B2_+qY->Lm*sGnEtz3hC0sHT*V03Zt8Vdr1awN4WVgk(G)a*3;hEIvq*-<7 zx^BuCY+J!rG>Bx82x0i6ybta>=k3J(I zgM-(+zzL00?GQc`_SeRbGg0WIdV>_i1_xPwI!xCfK0J4^ z4jacCuIN8Kgu#mGHR_pG73b@+b9L~}*K2J%p6bS_$x)unk1YdQ3%AQnZNeojxU4As z-DYn}qJMO;=Id8BoVy174P(4Ze`l@+)WeE58sR|7>Hrvnm6E?ZDv29VBwELz-OAnT zzTLBpFsB$e;5#}~#LrCxiysp`O>0x_OWP3SMc3F%rHHuK9wBlctAY_8xD8oY+El9S zjRJxl+FL?lWpK$=N}?hOb-z?W*!`$;eIwNFvvzq<-KtvQRyB0X`Oc^1rs04Fs=Tx5 zrB)4m`&S4oJ&Db1IwW4RTc)K_wrZNKa|tVNJ&OM~m(J;-2PrOnThSFqauYZde;tzL za~iH>XXjG8)_HGOevhl)((zTIxI+}l5HJFCO^B&NUC*7axm*4v9;VE844`SwD-IMX z#r2bO!QpnFp)wyfBX0Dz7C*R{kavrne47rPukX@L9?llfuL9-#m3-`QB$p`Wrv(1r z9k*8Fi)Rh*KHar8Nf|sGyxObBhY9Gf4+9TjGM=vwg^MSHx0;{t-^mtm*{xrlPjBXT zlf419GI?sW#No)>ZfD8xtM)yvUs~TY<`PmC3kOB+^B$z<+>lrc5okR%@SjMEK*(Ga%`KZ5D$9pU>=P7f|{voL&}`@+KOH)<~!fF;)-1FQ7)w3*2~Kw z*6&}4zrTJjlc#P0*uV0@4>n3ZLG)05Ef#yhQMCsZs?S^iWrtAduA6LI(i8F zd-x?$p$_8@$Ww$HInVH+eK~lrT|owJ&ssG#y=!oba5r>3m1G@Dms=Z;(arMCyA6eV zdr)mCKZtW~;aXXXdF8Zu(7yR{$<469%#l&jw6Tmlo&F!AN8?fS3i#s@m*Ms>WOi=gJgE5`naA!gsVnnWHZu7_j|cj4kgzcaq=y~qk*}|zLEIG$U%zUfg^x=&M|w8 z6BLGKhc|q(rZ{o8B;axZ^{&-sw`&|urn>ijhTcuK*<-fX3utO>8v$Q%;A4?{(pMRF2p+}_4UQdD+AR^ar zy;P}Vr=7Wh-a+xm=Oa#X%6{Fl6;ww6(h&ekk{H>~ym0IfzAn33wUhE<1Wo7!pO>>b zAXoN5JyQsjHb%LWQ7ppGOEVDwW~uB&4t!3!z4&mY4gukGn&L)9b|nZg>?6ZS!715X zXctNGGNN=U54`SG+5c|hIA5C{fzhx|ATl_7PSdjaKBkbuuX~BrllP#L`y;=a4HFJu zFggu@g2Zk6V$rPRRKnO<_w(?ZS(Aukv2$DyR8waUvId|VBrzK={#o*ZNmzZ#$EMlu zJppOM^y)_;HaJfVdf5n>d9n9dv-oocyS#z!T#7Pwl~&SjW$qi%27UD%o}SN8JxgP8 zhrQP0R11=-P1O_yZUa>jpw~{QBhMa!Tn=g1d{iKNNi`Nanw5pDWCi3o%)=2iUlGXw z=#*ZJ-{WoqWR+yoipmP)RrRE+`^1qt5px?oqN}S;<)4H?coN6Kp$8n>qO49z*(nMo zF{l`nb+{#pFqGi`L1}W94wLWf^V=-Q*-l^?cC#kn zT3mi8&t6xro2aPDqm#b?eO_OpMK-6B%{mh`RVQJWM|ppw#PHCQ$$d*f?q%s}HXNzv z+-8s=q99rDJ`2oj6M&pVXAjHC-kc3Ntqujvfp9Cqp|S$$jxr{gRj!qqjAt#)w)NW7 z<-S5OEAc5PHq^SYQt}Kk6VHtLT-Tr0;q`pk>FD%=)~F$lDvS1T@?U9)e3X!xy-pRBk+#2Qc+(7;4C_0{*7crRM&h zylU~`>tF~q@6=wvxu;vGghraCKXUvnXFXI8TlbR#` zNl8miWJ8K*S>km++%Jv0lmId!i(`%;kBCp}FQ7b#tqAfxb8n9@rVg?v<^&sJlZd1~ zdkg%#2>H|R)MO+V5*`W#Ck-*8^O1vQ#cc<(lX6i>uMs{gyn`oP*d;1WAs}ngtO>W3({jLJU3gMwGdf9`xK!xl&B%Do4VFPfMcPMF_i$Hdoo7D1N zF|1~We$ZU%O-7Hzu4EDcal=M1{ExwT<(#&G2QN%fYll}8i9*ELMtg=14n$|zf70O{ z$(_p0AisrevB}@EHW>cHzAL4}$QR09CnAQk5KPF?j@ad^=9)F%2N}e1_8+{&LZz3r%~mRrjV_kQcd? zH&;B_5<{i}W7NBD;-qpSQHG9Z7VEX#@s~dC(2unN(VN#><2neeHfCCqK?d`Em;3JL z3&&;+epUdQ5jGz5CQ0LJ&z=Epn9%zCKf4vPYfZEnoo#c_WYxeugt$7_?q!xS ze*qgzeP&OpD(3AE#yUTnx3Wt;imOpl?0aS3kNiM^6fszOQ`cpuEDAf_;VAhf<5HqK zf#!aMNhiIBi-lu0xjBA7&p>`KKUIhn+>S7C%Y-^~uizhm6Hb9U=A7ZFl-oHgF4jlS z($;0&CVK^WgAS&8QpDni?OO9yEm?N~0}5Qn5Rhq+7&-iY{`2Jx*Ry#9T{kjzMtuk)&5xGBfuE3bXUv*Q0hF*0XLKx?R%Mo2|A? zA26A|I~Q)D;6(%X&}zd2&V@F5n<28C<)#z6S&0%asOrOjLRqi1;7Dp3TMLroq~9%2p? zeMdK9`gMCeh80K;G)YC-z*{N;xz}{}IjD#8GTFV9o3+fmyF#hQ#%#-_T!~QuvO#fe zmuuM^yE$n6KdqI7FllMKSc}24L&x@aGG^$cOr#W9DFVHCbc29fPn2^ok)@}N4$mX? zPWMetJ7QRJ6;;dhnHl%{NM>+h6sFCC^W-Q)HD?1OCe3d?8!ByiMGy5e&Vw*RTCFc*u+z(NUr~O4WaHawhgNd$i{h|>dCuUn;L7u zt+t(t-9E2_-NTJM2<>#uvQtsvAm@3c#1RuxMr+M@Epy;M;0i^GA?(MV5{e%{isx1_AiWPfSma;p6F^ zLp;&0586>4pwCs-TMG%XPUn)c7H)ao4A-u+b=G~`42ksIV9|KVS_gJf`|0BV!B>tg zacV$vZ&6G*$f~N(oX=Ha{8)PY3q&21{4-u_bVk5oZKDi#p)^>Dy~2liUeLTPM2pW@1mcwws+^m5uLR|`#{ zSnr0OnLDgi) zU1P<@y4C2AQ5kq>jJTlk8Z{xTN>26|(u|CIU_o#E@@@!+mqtuw(%<4;q-e`DqZHIh zIHdXyB8%4xt`@_!fwS;AH@tW+B5n!2FoaidZ>i65)-RD?^JPyCP_14s+BoACC-q?X*R@%5MP1zyif8L>AuPiFOUTVtjk{cs7 z56RPHNQq3LZ9J9Rp~!W?4zRjCqbgqcFB0R0#`F~E((gygb91!3ypP?*k-JEuxr5$d zR}TE&lNFXTI9>E3s&xt9$pb<`v+>OE{=^BnDruPkUY5K2qd1EkCNK^W4`jliw^$y ztV*5bh&JgR`~~oyi0<3i>AptXX9OxukgTAZLw6awLZ^`EZSVqgF@m~l+K+`^Se_MJpsxa8NqHmgGNplo&`{%d z31cjNkplO6^`DM~n?jZvDXEekDyaHur6}Op?rvzJUFF*Vs;@!iy94>zk4wtet7`qQ zpqGlab$QkEMAjEv0)W{EXa@q$Tw*tudZIpm#IEY*1KTWFqZ9%O7jow% zbF3@V02jEad7q7)3+ti*QqkwYH4Yq@yh9b!6#=X+hTio$LuO4G>1!4>obZ=mDw^y@ zC7qdeR4`DJQ`yM_o<8QSS>>p*<~vW4!ay*A?0hS4Q6+-{i%Ruu0i$ZCXqpmL z%0wA;j%MxciT2SB-fk+B+%D@JQxsO)umwK4n<8DshQV6J1e#t|i1KF)uB}Gx2Wfn& zza!zEZw7sTbvY8jtLf2fQC| z>9EVxoQ&(5G4%}mvvn1YDZsm;wS`7oM+8q%B5F?6IUFn!qxR*=|6#0-$En9O1j2@Y znwfDCRrPv`aX;=DN2t7hmGmjIii;i56Y>sJA6&0s;zdjE2pcgik~OOcH>2vp^&ApC zP2#ABi~}daL6(zYumdyrYmHK&trZutM(MHZiA2%Fq^B|%VL>G1$bE!-W0DoWJ{A56z6xWCS4fJbTpNG@D9}X{I;Doy<;}+HV7|;9H$HzUs-k$FZGK|#gCc4NJ_#bA_ z8p4A8M072@FSBNs!6+Fb6Cy@&;%bipbT4&OY9;PheGPj!L&$|pRI1wmr2a;px& z0csSfMq(|%AP5QqoXbiUAc+QLE>(NwxBv-?!eBz8VIoR4ZYAl3h$-R|q)yA318-Be z?6+qI1~ZC763qB!q(NE*D+NkMK~xE0ay&{A3ryrV$!yZB;aq{Om=lPw{t{uX@EUMz zL^7$*UUF1gNzG_?(XRPaXa)ac3I(BPkPWLSt5D6T*@=mU$xg|| zNn09L8!M#4X6h)IxD!t`>Uo#Xh>2Lyc}Z)(Wn#^P=|P^CjtYC5|1?;kj z{*#@ez>2-QfE@d9dRpFa$lA^N!TvZF1&x&EOAd>a)P*GE;Cn-|OZp~=% zA!Xq}3plvArdpFP?K5pL@*(=N!{z?TRl3y48E@=XW>T?lwV0AjDgMioWHo|DQ752f z)+;v>Sn_x&LYO)uKxwRTuXf^Qg4SY=OGUucT~`;$SKsUn>Z1rjvdrrzl1&Qz8!Evo zjb^?Dy6Tq?rmr2IQkY+P_m3p|CHZY3O!KE#*PjH6@~7yP2xSRXMfV!{gP4UBWs)|~ z=4O%T12}fJZ!xZ1zYai?7>()$jY0;hTJ3CyptmEVB5@whSYss>EeO(9_WBE`PAI7} z&c5=^sDf3JTzaL?K=k5OoJvfW|gg6mv8t+9>@jZnN-WZxL zHM%<_mSpNeJ8-C1EQR4C@=WxK@r#Iu`d*^Bly$OkR95;9_Jz=(d(F9J!rKOFQ+(qq zPhEzSurgct>?*B{QgKKO_oZfh`sYs7^j#>uQCB=)$# z^9~q{>gy90*0GOdO*(4B%H?aVdECkiMfy(kUH|qng&6}~=NX5u!u=4ISND5>X~Gli zEW7bL$MZJ?kCg-5{S@dz#iBK>v#{?3CnoSP&Ri;R&lKyZe6oW1|JgfmToL z$@k;H9r3LBo=WBFdT!Es$Q>mo8Ia+Qx@{OHK2fDwAFQqdyG$mZyfs<0QuE2QPu*pa zmc0mwT7ATM!nARg1B;(3_fR1-LTT?R3Fm42d}yw`PN+E6Q#ue4vkH2RH)MH4E~7)iQp|X-;lcx&Kn-+5 z(mY1`=0in6%~6-kPz+snWKGdtkdij8h?M%8+?9Jy+m3Er?e`MdGjQvvEvWV%RR`u~ ztfb`H+?`A_U7no9N9~aO)L%2=Dk*c)NL%1ERxRFSfjh%TPvN_Y&5F219f&0w$~3}^ zNadG}rHDxMSthpmXanG1P`fp)@(xku#z>^S7t2`Ne~g{+>?K+jA5^~EHqmcs6Xj=_ z!*jl^f_P3o|%G8t8TPjkpp&DG^b`^Qai5tM(6 zikQ8ih8Y(%r`XqQj#8N_lTeoK_a)2Sl~gT}5~t8#YZ$4Ire*ln#jO`w9Xa@3%T3%# zyQ1FVveMop3}7yFbhrh*MHh$zd-l4T2>rNvtNUdt?k;(SvBZzk?tLUd%mePWQEkTbTbn#|bA|jAw z7jsboy&5@Y>%%Ptn&*d4+XF1f6pPF10$Zv-2}WtjRtlvIFAd@-uP&fmZ68-r4b`wW z>BC>`Kwyej&c44rG_Or^)QaaMi(SEYePMqtBzs6DHUi5u*O{tsOswDIQ*CmMQXw8d zC$-n&=(3N30%Q6W1dLDb_?Io&hfZy5QFMUR1S(<9x;i|rH&M6ptA_q;&l$B9z~w-v zGh6@aHD8YK8IWQ#%L3@J3>C0C$0;ta{_z`0;VDj{F2Ek>vyRMAE;qLbv4qzV>JDl| zmG=-_&dpA9>`A_{S4WbWD)}i21mnoYo&Eb?X@O4*;Mu!~007=R006lEUEx?;7}5zE zIGIRW82+ceInnZQT9Quu<@!Jgs?f5wM?rdRy@UuDBZhOQi%@C}@JcPpO{{64`Clm{ zm+{+#Tc6%rw>j|!$ojVJiVo$8yQ!z=r%k7qC+Sz*-J9841G_{jn+1E;Ss{l-#88>s zuTXZ~_ndCxEcZeL(Lhj!xC!Y}3rx38rVGiENV&OnQlL_EbJiX+<(o zM&!h{oLM8yqwxDfjQS+=Q1JgrA(;-MAXULR`%j$+CKD}uZ_1GN1MZusGlF^PBMCC9 z(HLicvQ@J~6Q+fk@}w3pE-_=!=#a(vfO_fCm@UCZT+-)~RAi-(E!YXEZ2)8nRrsCL z5B?b;Jz+Cz*}*vpbWQey%59=Vkb;#ysWLiFEOA0Mx@iLA{L9(nAOqQK^NTrj= zC2J!FB#^)fA5wVCUSjAk23*oC}%FqxKZEV?FP^$##_$E?^e!m`B0)ENuPl zN&pzncjEX|d7cwKdsKVK>zP_=J^#D5lFx+``4?c^6J71Bht|_8jqL1B)+^0!*lN1_ zI&RqGu8<9AQz0*HdE9e{u%PQ4PIk9&!()f*F2>gectyj`S;Bqp6LVB^KJoQs4eHoNfTzB^R9o$zZ`|^r%DgJ zhs{px(B}8MIcj!IM}E!2XICXEpe5-^_O6gdmJ2!6*+e8|{^PDG$Z4~hTfNM zx_giB+m$fw#AU3d(Su_O{FCx$l%XNyNftTgmx61v1A?x@6+fFylJgb$>M-dxC->u6 z!Zt4__`tyG!JBXMCgVp>-r!GQ*3Qq^y4_&|M(t=4gl)>}(Vkz#;CmE1{Fqr)I?o}E zwhVg)^nN6<$5u2O&3!~eUI=pg7z6!o|4TV!#+bSuwccVLA_puxmg6lZR|pojC!^z; zFDVvO39cnZp3IcWHc$6t9$lv;!=pB6FF}ENKQEQ!w?Fp%a&&k;OOj?Ce3=2x_%oVR zLR6qwP*E{&B=iKO2zVG;oCzutz$&U!JT@6OaU(W;JpzPlK=x-9xm^~E?pH=Iy`9bj z2Qkbulv!r5im0y!d~UoV-mI~0e&(dHW}D4u!As#YLqsBsf%JG^?O+SO0U;n^ga7#$ zgv8RAV**8pAp}OB=LA(tN&4Xx!sMdi5ZQWWEsG>vz!nT3)6aG=Xz&Y-v=M7F zyd|U<R`PilWmX7#0dT(r$$7xmr83fQFy8IbXtNLZCs@$AoL2bY4R*diL>{ z)S{!I+w9-3s81Hcsb*0d;eUp1v>M~SX%;~)Fi8Qg6wOfoV9I8J*7IW>nR4H-_M9WB zUD4z9^&(U%i;5GQq!Nc<=_wS!cwHVe@@q)HNfTZG^|sPbYI~n;-Phr^?MOlQIun~e z?10l)GeG@!ph6d~os9F3$B*CNmlsyqlHj@Dp?Gz_mcP5b!r!aeC(-A7`8~m7QWh$P z0k}K~P-o>0zM|o1-~5rN?~rESLZj-m&;)&FOz=z$UGiKPGYpquVNI!{yYBxY`%r;- zh4ydZM(uMtB5*zAJJZ9VH8X;ul0IjQp2Hwc!D}R)x6Cb!_ zk~1olz!O!@TzUpF-N^gXV-A`xV%t@2EWh?6jW?`F0bf)!L-6 zKNY1AX;R~*CIp~}og|2yEb+8Gw84i*q43OQ8pkANKwQPz`@4%%jo3;kY~_Vrx-rJ1 zXqN`%4zU+bWzU=*P1QIcxNj+`!7v!l;Sxp)!OcSu29H@qkK5Tf))10wrT)Bez!QAg zGl=F{rVU^>(q)_n60|>MTQ|r#8IW^68`{nNxWoe18&2o``)DU-sjylRBr)Z{3gTZ6 zG=NG+!o=ppg*A6m6_hN*it)7xI}9gVrU|N@q{Is2Uk}(|zXtH!D@j!eQ2NU%v&bGH z(;Nl;b5H?5bgmCBD5Mrp&YGBQ03K|t0BZ87rCf?%mZ?bUYmcM?O5swd zB78hp|7rjrHeUN$jY@8_+x%E{o%L=!q6wvgNYv=mdUYYVxPpTpx)Da_JMEa^1#hTjNA^c6(6+Cz=Czh0j@R5S; z1hNu0DJFm;vI`;6V*z+UOy%>&^+A+fCW#+)jyn=p<{^NK#|JmylJ{R{Z4#dwngvk? z?rDNY7W#4XrkCfv6l=2Sucr2cp?33lxD@_3I6PMExsh6 zY3L{cV*s|LqQNFb(c`ywVoDokl(y;|{8rjg*ip==)fdmJyCySnBvVr^A-+rRrpPD{ zb#%WAxbJNTDwB|rAwum@tOeLbxd~}$ZY{P=+f}t79%+G(X!x*kfY4|szU~AlT)4s` zo~xqd=5q>!7PTb7G8-oQ;U>R_*SmQADw^GSzhe0#nCau-)uVWbLGt(Ff$q9!d6{Aa zp|z^nW`?W*hSqI+oTl#U9JQM1F@tvUX5m!Yfw4nQI2kWIW}LNj7lac&o5?FCIj^i; zXeMJ(+WU`t;nxv^khpe&sV0}KTp5`HBZfiNLzFnP*p8zb49nN!c&lhG9>DMl2;S${z>+w=>Z zHFcai7qb?(3{Km?=+-+O?Z?_895{*i3t7L>EH?UABkp8tObh$wnVsiV+i_U&FKs46 z;#tX{1)i1l#JQ!@>~WT;gM{NM3Qso4H`_dcz3}ELVB<8=>aq-&V&-IVXo}W$!}W?; zE0uRyk~MFhOmLksrCAqz~Z`?Ov$6&zXT7PcOz zw;QcpB0qGCz%mQ0j@I|{RAP3X7Q7+H#F1Fyx@3k53<`ZqpJ4&ihRVMyDuUW_D*05vY?DyC(S=OcFJ(6SD7FFBuF{6q z+%-gQP%2p#Q2iwwWA3r>xyuiU5c)V{A3jf`)OqsK`%^$J9P}lB_D2-=qecJoco(xC zWBT3?4y!aZb`rKW_Wycia|&ElwhTy5>iBIr$tz_C6m{m(=)Tf-htw@&xk>qzKCzHA z@SFBr9Sx0#EX;nYlSiqlhVunlNzdJ@zc*@g%9*!i!K%yv+sLGpPE=C&R6!sA;l9AL z-u?CAX!_xJx!~D9x`MfeSdLa+joYNSPa_QQlMUYpIk4QOQmvcXnq#-t?s_{OY>7F% z7E958V-@aJwc{&ilkK*(j@pggh%{ zt6#ul(}qMjc@>5k&ick`BH3l0Rm(G!Pv32B)IJm^fEVFuxG;qJphG$p(xwBs;0jRRk>R>n+g_lZUbQNh zQGfPdZR)yu&wgq+!u6jRnvh53l|uQgb?FKKa@B5P#lg|i$ICAj%-Uw zC?o${E%&G?)q0f{{QAWMI~CXkhy6CT6k7P|)=+P5H1#U9d8F+NG`o^Ll`#*q`3LtE z2EWF{d!y7CZfVS2wdr^9Xp9!?G5M;SIj?YTSao%(>=c%MCy-H;`?npCB$Ry#L;5A& ztaWsc?CE?gcK-Q}E&?U*CxxD!L%KFd;~jrr7S8JzyNRxHO!R9%XofCUh=1U7^>Z(=##8nkG#9lf>IIE7__vb|7zIb7y?c(-jae z?Cs?-l>h$iV`lP~Ly4W0?omK(p{2BF_)8A8%1lR(#iM^t{(b&{!n2%5~tD;&VsGt5^e10YR-)ea(>O0ob+l3V@zGr{?duc1J z0$FN<_6pQjCnTg!MXOYOCQO*uxdJD}CA7KO@iOuBTjdG{=b=h3)63L6@lN~n=Lb4w zbv&xZnj6%kp)Olzvx9P-QRND9SdavfUi|ZJ3J3c?>B7Qi(_!NuA-b7_;a{bKYTdll z-Dc!zL#k(a+%k@z*$GnBROgJZWcuQj{0T2f?_fEWNK;Df(uSsfY1y=kSfzgHYmz6+ zrl{cagf86{)u~76`nyQ6@Qx~;)*Kv0Tjx|#uBpPl9(eakjs90>%9d;exFR=etK86S z^^u+>RFp&f{gcOIazTG4x`E|D%1k*&n9|UOACDF;Hy}ZzuS@_5ginZ@2ljPP|?cM)h z=?j9I_~-dQ>8k-7008g*3Wh9Qn3?{E42^1hId4s&{$l>2mYbaEB^pFH-rmIM!?vAj z(1O7mlv|ePYL3&>&;Zn<{J@RZ3&Zt0Yn2CQ4b*7;|=%D$*3G zfT?1QDJ9`0@uNLRs8Ozx6lrHoaRdh7l?aJaVI>mauNA`eTw+8a@yehRr5V6WkVL+w z28cnm@Mlj@pi*k%R4I_1lo(5%>X9kdVK4`x5I$E%ytD9^gi4Kjr8yy3*7&R`fhOb6 z0lgCQ!>x*#vT5vy!MQ5%NF#uIYnMjCtt9Z5LfUa*hfravQ!3Q>Fh~o^WL!)~lp;v$ zj;Bl{=mx`q-pP(g!^5I)XF3@z)2Ko!qZ#vR#)~z|4{PEK*03lAie1I5#xKcd4gm?{ zhItJFesV#fjHg~_KE60ofqBu%O0<0^${jYo1Y0xerg3mfjRE~IBxs%)Xo)I}jqp@u z_(~`}2O<&5y4u9-#iQ|xT#t52_s(hl`8NMcS}&fqJKy4Vm9N~nKJ3&febf8vab6{N zaLK;;1;5HsZ2k%SJ!+M&KKXrV`uFO!aw(MQ?zs7=qtN>*`R{7Qy1&?1qK(_v$`f4= z-|7q3m`VAplUL3C&`o~sVT0#YOYct@wQ8=%FZ(6WwQHqh+N}L9SEn^gx2xw$&&`WY zha>c;ZJqDmP@MN++ZXEwXzY$PkHTHgrd1=Og|!}G7@fBydG0j4?%l3u{v3C$GWv)y z`W|b%b{%Wjf}ED@U6EAzZ1frTx`b=Nf5~EE|A>3}-7_cHvfure-neYx&PtYV-5)eW zYj*tzzxV!is#>}A;+3D)YgmCi^9xE z6?DRRl%%g@!+s+ujPUL#1vhJ+m;(?h1%)XvF_4z^7iM*Q03(7wf7I3kO9H3fvfTpE z0#o$WHcka!B0iY^xmEedz&DJ@=!^|VXvt&@5J0&(O;}78haIL3P-9}_=I@75eLfQ~ zx5h`-{BS0w7fOV4<@HSLdZAwhLLiqrjSqiTJcBGHmzUV$H1bRxot$5%h;5z|)_N#- z7Z~rCys=51mViCi${M4V8lIdywkFEtHcjexCh-D9-se6YDCkXW<@mdY$rTH|o3HFG z3g-4sFWENLCa%I{DMdR2xB_i}QGr=GVP?#mfT(a3U#iU?5#^<1N1aKXcuw|`vOVeBx{Z7u{7e{&Tr!`2>S?~&aGQ~jhiOI!_5-mo{og$`5bJNQ=;y7!mWB848 zIaJ3lt^-pRpMq>g+Yl)w(>)5uLO-oN_m9zzWS%2pPc&vwx7fLjesPVJ@|}LcV$zdQ z6d^NP*(2K!Q5$P7^szC>Gt|wC4SEn*;7lJHdghcZ_j>s@YBUhgE4@TUm=V?dDOsE7 zTOYe1^}V;gjz1y>gTZwWL5GH29~`xELwuLj;TUyB`FJXz=kNs-YSK;wDd~wNu~)_f zg?vKq#)yMT`R;8|nF38m1#5K;10uwsbH)X^khCka9(Lz-*xxBysEN z<_#B7no{=PQOqKckTZm&NCBgQ%4yMJ9dwy_m0M|eYiJh#m(Od6k~#%^g6y4+>+rkM z_#x5AkxkE@7T^{gYA?~46E>7?IB?xKfwBf(n}W`uO{lQn z`Ad@fo#?;mm5S8kP(X^ar0gtiVuIfwSO4}nHfy`qK@pcoeq3j|vpEn^#cN_?W3cid z+_wwsqw^M?W6$QWXQT8njpt9hYd+UC{Ud_0atnaviC zN@v_!$fgD%@2<&Kv0rQ|3>~(AGZpq5)4!hz+xw-fxvBHBqy=1)GF27EvwN?P-%g-^dh>9xpQ*r*UWylwRvz`w#u&? zelp(b6#CSf(&J|s^Zl^~v*GQ8c(17lpC%pg$E)#?o!fZ|~cF`E&kU;-6C; zvyZ=51N^PLxgV{7iTAMqR--U92>)UoJ6C?a#kH$RE|8~+En#5X09Tjt=cpvto5!sqdbQ9mJ+@?C6X=*E3M?^8JN3_H?SLX@=OE++vF1CUaF)PXAy zEb6YBfn){oVkiy2qIGujO?haC4UP z^?FN%D0#$}rkEW|K{2!?n^PXErma{OYgH7f^Aad6Nn&&N78as*r@g|^#H8n-rBnv# zO~Pu)6Ze+HvVfpG%|fSCdP#+-e}-^PZlJ=UdK%URYTbGx6iWohmjhK0>CcN>E$=gy;ksQq2f zvW`?{UevkLe1Dy70@scXbZlQJ;l)Oz3h>OBMB&w{aK=5Fo~9VWhKk@)CM}C&x}OW$ zD+r8H)fr^P)0gRc9Azd#?8l4eCq#V($$KFGlHq(M%hZdvDFuyou;u!fE|R>4>z~(6 zJQfSz?b(k#m2oujRZIV4iB4naE|dlxbozP zb)b8r_>TpVsrL>B&POHvj`++C3Q%GC!FSaK`ZF#(6&85eQjtPwrroM0d0Yu$EZ47oqRvXSS3G!5B0Hs-9WdSj=$swGie}GtzfI2WN~;#hfWjoG4QbblXcd94A5kmR{vosGuiCsr zc#om%8;hu;hdxV@H=>>ZpMF@uDw!L(ZMc`EL$)Jhz|Hp#j-6z_`7Bp=)*qnR}&4aWI z4Y4U!(HQQF}y1t;tUw-q$@Tgm%t{1MX6*k}Q z5UTeSwS2@LI%%y3*n$S7qua@;t=anBySsMdQHU@u>qPXTYd^{^XnkVT-E(^1oLtP4qY`lj?i57z4|10+w7VVneO#d7G{?S&inZ3+L(=yOWv&!jvP?OSDYCdtr5k=3h$}x9$f=h z?=HfLYSAL6BM~Bh{T;)?$-yEz$sRrcD^ifs0!QSrt zM~;@&jR&)zGOVmP4q31EboNcFwI2Ba6WO(c3CoE1UKMJ@-?soO7q%%<;?YOqd4Fwk zInVrY>gkL4K^g!LtOP>6;Rfw`Ll=ue&GU#cf3Yf$utYGB7WklC3@(Mg`&$0SceVk1 z;5m;8wu>R!;~Bj(5Kfr#LdLit?2kG6>Pr2jT!4e93i{M@2a+dG<$n0Li{>mh!azkX z!reIhTMT~2x5=}iuEZB>H%y6Tr>XhRF-!8GuZ3AWj5qGL8y73=JWn_{=ANjl*bhe% ze}DY<(N_W8E2x{d3|3p@Mn{34no&WBulwv;iL1@E%#}`bZ1?O?+Xy=D+{};jOv1pQ z6H8dcvW2G+!cOhK`HgubDJs+i`|W?R|M$DWF*SZ4@;|^bX#4-eSwu{YT+RQ7vz+o; zD`QJ0i%HawT<5-U^wg?BZ?$x_{s1)V{eGF6^?nhu zFy}=?au|V?RMphf%+&a(x_%vOw*PGUj?Ept2qWq2o77ykZY)Nl|9yR5j2;qVpWT|1 z%hlnoK?{o^P)dKV$lrd4Hb)E7|CpebSR#niNNmRDzdwPy<#s5Z(QnygzVk(=&vZK` zTldd4WppkAYkx^X0Uvpufhi*BGN*eA02KglT!SH$J}`B=BjXRC&&V!sK`X=m-c!ot!Bn=4v=frs&@(FaA zxMk1)HG;#LQ-`|%aLgOxO4wr49*s7L^!L@;;mQve^jbEH21uNLg27U@`Oo1fKBxtE z6jJIJQ34nTP*IL*4Fw5xu1RdnJXnRIeQSS|+M5MnsdXj^vi!+ng$Vr5Vr{-J-4Gg1 zW6Tg^{}`y3Lkpy%u0{ALTdp0h+4ZB96KCFQV2HB-4_1txyg}Zts6UIdfu4o&kNbV7?EY(*a1KnvOPv8Ma!FEd zEWLjg%wA7!WBc);Cq9<`OJLVtwPC(Im^3%`D;T=1+g|rY@8xm@Pm~T8- zrri{n;QhyHOPylVv!5NrhM+=GFoj^({?oak+pSmo4NC@UqXZ##dG~4pGT77Ion50a zX_MD}$m2H5vb_m8M%#A0ngh<4z3PS^`j|!jd+XOPX++ZY?jH})v@$dU)X-<259`}M zNBO}=k@ePHW_P@`WZrH`A9uxVU(hiBL$enf@AEKE*jH%+>gs<{%^cnu>oGp(WCuI~ z5#8YP16mE{Hd*t%2suDn$@Tl;f-cixgE~$xh%lxHy9@)UpBL0hOq>Dng}hoFlR#pg z4@2POjPv#QkmMAIGEWB!>Ble9pV4cH1}5yE$Rsg<>Ap-;zf|yp%!??_e`CGS1J97u z=cADCnXFkl487*_=XOwKNRWxmizFtki%UV|QyWzBhv@I3&#?y>%Kor00hj?EcWF74 z8=6_#b-I_w#F#f!X$K;LA^+aKR}7zf^Xq&astw-(aGop;=bPU@%-`lrpTcLz(L5il za6=^cJ%T#p@dtqE9KLlAfP9VGs(jCL77h44LCgV=9G9gmz7GmNza3sT$fhQ4JnTSj z!Fp$i;ucmN{(yK=pcRa~G{7fN97b7`AgNd3pw7Vf%qIBLIV6UF-S5alijx`)Zhho@ z&%;;xK?v!OOQQ#{&l68Z1LS%K6-fR9Bxrr6VD99$ymphiKqjs;Up zzeIjLH9*H{z6tUKXVU`UJI;r_b>puoPB|Z&vB7M> zg9Q|Gbk#ySftkljhx|de0bn5&-jHTAxN?4UOjva!wkls7njaEB;V|M5PBcO3UYhJ2 zyanKnjvy&Sf_`oo6d5})Stz2H0l+8&1)5zI;Z&Hu6dZEF3!TI<1TEtl=l73y$ryud z^>w9h8^Gd@0o3D~>E3KQc}zB~mKz-W?d^>NVL3B675miA<9>fG@%>`Qr21a|?--}g zq6Z|`WMOzTcBCn?KcokY=KLWr`Z16rq{wTmH(>?ZK>kcTI%W3uSkH-eeWLI77Q!P1 z`#baLA}CkThT~@K#pru2TyGIZ!;MKHyxs?c!jE}MFl|3qLKK7*SRHE7>vh2fK>?Tr z^?BNvc|&3L7kyqIS=2Au*H`7;qNw~HaRK@LfL}ufX$R6h)Pz15;>aI0qv23BK9iqZ z=WA@*3^)KQAfGq#*dD!iGJcgqu6;OQr?L>}?aWPr;Ob_b08shdUUKpsYAM7@>WF8m zZJ6nDzK*O|iY78&FbKk;4PowI^`ho%R9eC8_99cpoL6w+SwkSmqY*nq`}w`WXC3>c z?4HU3a)~<%x?Q-1iz{cXrbbHrGHs#&&_;KL8qpwzZ7Xfwo@nl#$gP!huOP|Y{;L_Q z#I5}ft?Iall0XY@(&f9A(^|bqk`Tv%ZD$4L$#}E;@}wqc7PbToU+H9;RD}0a&mWe* z`ps-;|H!`f(Uq(@86R?bwpl;M{^qL568>z;2Sd9L9HwxJtvw&ZvH!Zb$}$lhde3}r zd_{=f?JY_WITK`titZ=mryQ8$>l2NJVFRwgF4;SKePAS0MvTN6{7kS2<8dlC)PtKl zhFS}e<^uCz`VgX!-!UCp&-$#01qGFgWuKm~NFzgW7#pFgun(_L3Lpi`FcYyD$Icug zMPMh7(a~%UH5}o0-Yb=uNQWW>1m8JBNFTKnkYdz`Ld;nqgB$(BU#c)nn>itHm8efy zg*cZZ4(O~elRuJRA8h(tm;;HEWI|BpmXab5?ETSsz630x`64j$AA?h zEv@mEl`}D|>DZQ;SQldUrK86s*lFqMX=!#k`E!08EnoWJD9PYZ0M&hKLH=<;6JXAFQgNF{JCh5`VQUwx*tI?jVS3Lkh}t$1 z>7r#ZA=_FYsz69!mpWr96mBULi zTxNvn6sa7Q{StZdPv>N1@L&g&3LXcCL1AzpQMk1GUb%&0`UiGdFuGpJ7GP+is$yf* zFlM{(ff-802q@{~FjE6nCPOt2F2*QpgJ^3>!)zd{Il3U%w3XM1Zv<&eFi|GCEeT}0 zZL%uUqvK%^K##L1a75X+55z}ZE0vsvh42N1hy%qY6f+4X+(k$;I0g3Ik)om5ehK&3 zBD>}?$C||=(AEzpZ7F2RAp+5QD29m4i0MGkPkn><8`-ykw44U?ButJp7^X5B+ZqxH z&I!1@uohLAYce=_el1doOv{Y{rb&uH?1z5VA&B2;M)0GiY+MsZ!RcoDHy(Ne4(ZvnPal^0=9OdCco1xG!;kracLB6=`yk zAuc>O87_gJKJLRjL7y9j8iZ6dLZ?eF7Kv#yOjFnAODBo1OI0{%jg`JamO8KFi^>?2 zhFNil2&m!<+E7a%;{}m&M4;DUI%}`#WGrZmHm#*qx6R+a7Pk&4`%9Wdh$P;lS#A*k z8d#yBnvZXVY6t-APslYFV(B!|v7$xRp1u;H8%P?X*3NJy1nA@l1J>WHA&Y54VC2Ty z>pIR0{C)jooy8?-85TI*45tkcq3KFcMjp#laXJb}xpgMs_R_fdGzjhzmr&<6PUq{IMI9J`iq#sXC?@NQbW0NJv`aPL z*31F7$bh=r)BLKhYCt6GLB33nVxGIGxj;V3XG~`3{swy!G!I`W!w$vs-s<0=awuj zbIAT0kUAPWuh4Lm@PLXA8Ql_>dVs9BY`G4v$6CLB<(dkUtk(-GKi_ zgMNI+dQH6W7bbC$t`Bl&^wwZp+8Tq?sW`35}0^y##i&pI*PTApqV7}p$SX#+Q8pmg!)Od zuA)q^{?d1v5i9Vp5G~m3St`5|ZgbM3n`R8c(xgPzf5YY%kNvUP16-+<@~l+mWU^Bf zr0IHtH(lS9~pDC^;kUhm&7nz?km>SmKQr;o~3Ra9hGz??2K!Lrekz772OSxKCaEV=H_NOj4F z7{HBI^w?B&oD!IWuSx-q`_DeRm@VB12iwA$K49RZ>{?e=Q@!XyB-l+l^bV+X`7Azw z4UUqUZ6|bX^=pTe@@|`F_%XC5><8T;g>0HqFa(II=};7E$yi91NKOPyNnZs&3hXI!g%KkD!23j7 z09j$%@OUGAgQbDfgP2!Ff1eBui^>?KpqiB|s62WaW(Io>-9-ed89Ept&uY#*-obB( zlc;&qf)m>TvO(i~-Lhu)rMT9t`n!MEZ0@;Ri1ei=3;Huxb|S9Vb@^ip3-9o<06 z=<%D6oQyhBe8caW(F=36leze~F>-B32Xyt3U<2yD2$K-y7?O7+OiVJ=k>0X?VW1es z@UsN>rZu0nW#7|5Rp$nZ&H)tFtbyYR2{5~dgB>fBJ) zjFOBLgm(BmUg7blnBE8G-|KLyr$t&(uV;`uswL)YX$BIMQZAna531lSk>~}S!wV?+ zDvA@IZ^1<;9#p<)s-0?|P7w9nxluO;?a?@i^SExkuf?KCEFLsv32s=&Hi7Pvt0}a- zxgnb(7pb;>d%anu%J{762j^#JvMX3J$h;d<4NRl@W^!%GoHoXlpw>n$fiKurChL#) znT9Kh9TwKxbhdk={_}v!M;alRKhTg1pJg33FRioPlf_z{o<0|9yVult1Q{$&bbw|Lsv^SH zRT|lP1#aoxsHpgw6I3fjxMO`iC-*5*B6)2mM-zRvqj^tDf9s@c=>;`gjRn<1OA*FF z2llJqwgMm@`3JOOQEP+M!xJw&ceiTGv#T1`%?bUj87EO&<^i}7Bq(j6-arEZcu803 zY7qIjM&R8%7CL_mbn4k44iz#1S4ffP$LGNPql{Zu6Xb6oU3Em>`p-!`Uk|G|xaeZo z;(*ZHftob$Kx0$j@(m?SciTLcb~4hBtYsBb91!UKb}1f`h7Pz`M?TvvG>~hi?Bqlx z#JqCXHH3*9ktTJ3G)P=iAi+;bpRYJ0-Clv|1`9dpC603x6zhzlg}f8VI&)FQ ze?W{7RoCeJg zA05Q_Ke^q|Qfz`%sS#7-mUcroTo|uTi_+RwiZ`ofI%H+m@_s=XX#71fQ-BCH$N(&DdqJB;2<2&G2=g>!U--L>!~)wH-EUI`0_ky*GEI(aP80- z6gHL`tn5vb1#}n}wTU{S|I5yLR7hdX8RMHNDY0`-iy8@_w;cdp9~(pMA2G&)12dE%+6QXG?avRJ;bMhBGTrWeMY zWLc#+W(Mx`lgLLut2hvWxX{!%0321e^`S~XfuKd~HS@>}2T87Z*Vf?iLfzgu2gYgj zYjt8qs`ZB3I_UAh*^F|D%?*51$VqG%vCbiwedO#S@skkfQkW<>iHPEf@>T{dIW7%A z!s}5Oh|Ng^0qJ_4FqZHAYC?@m_oQv%w*PFFKb~%W@YFAFLyY+qgi%K6TE* z%|Y|1e1bzlhxb@5R`)}j=SQwy-(igQ^iF2a_u{Z_5BYoXD7rVk!ZYzZGP@VdX%aNh z8vPPm2C-uexKx8a@8ftK&Y>=A*TRA+PPcq)*BeuO7r>_L?;Csr>H1D!U1iB2k^dTA z&y8}^IInrTx@zjP-?$6V5y-hx8Z~g)`|EaG?c!1AowJ0UQ~di;w)pa=hP(Q+1@^f6 z?ty@p&7SDKCw|D!;X0Kk+Ju&TuxL06R&JK^B~;GZWXZy(a#m%c_GXfwZ6(Gu*g2g`W} z+zQs>rkDNFY|-8Bb;U3V|0u+kQCY`W2ldk{Nve9VeHx4gEfHU{<|HQ1`!9@moNJCU zTig5T&rXz6c{;8OnrtnXu>n@+u)Iwn2%tuNq)}jDd56DT+f6K@z+Bh2uISLb6W9xA z-@*Gj4N%Vhi}~J9aZtiTzV1Z%Z+$)W2C*yapyjl;*KMtsKDsJ>t(L(p_MV{Nw$gm_ z$m`NQIEu+g780ZWK`17a!u+MeM0e3vAbj|MdQz3w6W&QKfdF&*_J_6M)6wN4*-60_ zSr5~Evk+G;EEMa+`V~An_h}h#zAO> z`^TFm*n`q=JVDAxFVntzds(jOPXuWCb5)=GNwWSq!flLv=i?7{f!4QcGJ?U z=a`eS(NWks2=B1e$3ibZV3Yz8nG6!g|MBkM|IyT~1qnH!JAczWYSni$b3Jo?om6c9 zx0N4kKkC`y6Y0&*w{~i@yR-&2yNz+B1)797zNhioq%_iBRQcUVIB!Jn@W|G z!-+p0?PK$uV%Y{Yd_WCpjRj~GaXsEC=?H>oridWo)-foVBIlE%zC`p4dr;dRr@+$H?TY{7rI_d+Ma%Nrv9U!2D_Ztv}W9EbqSR_`Kykw4{DFaL=B?p`P{ zSN}c?*Kpwle1OK==ULTu;G*5#_tk6B_Lpc6(2SlxNnO|aE@A@iOJph0+6_$Nj;p!D zFBV^$zH5C~F+UE0>n83?!mX)4!PZe3FNW*9ef<`&qceBMB|JC55GcZ}t9Lr^!E)#A zvl!idDC43hF#gEB>(>=jCSdC;?Tlf7Qq)%xoaBw{rf$rC;YIx@0 z%3S@{uC=&MOZ|4g3q&=%i$fU11XEOdJvT=L&-VS_N5%Htp~>7=?;-#n7sLAC1VR4| z9Cw@re3!7w^l5>A?6SxxkX-%*fLZ;pi^8SnHUNZQAFdmWq~oHcJ|HWDO1*(p!>#_O zvrEG>S$+>U1SLW;5RBZvQD*l0@p5qRU!YtWpXar_f8w{*;VNy%8{QZ7OQ%%0WsT2h z<)RgGe@#!GMClhf*!11L|8o5@kH4i6VtWZVX?-CFkvoQps(pAL#{z47zQ&-{Q0@0U z7)O*3yd9otX$S!OK&@$C4MyX8LDrlA2$d)1D`6;Wd_Oqvhvko^@b&A2puFM{WWOhM z0A2))1Y|9Ai7F*gqFf(3IY zF|Tl>P!;)?-Vun?Sh`(qOEdV%7L5WK*@dhizWxtg=M*Fg6kOY}ZQHhO+qP}nwrv}C zZ2OLF+n&jNd6kc(lHc=xs=B)OTASJf3#>@Lp4$l1&_*arf znX=P2gAR;P2`q$!gg+h$vrWUIG^L2T10VVPCu`geB=9&8xxvi| zj>%KQ6L|vJKPxKj2K?Sa2@*V0TsR*8P!oVNltOw!hG}>Fwp~h4--2H?nq~2Ogr;Tq zNSnbUkI}mjEy!2RP89d^tBeNHpMQQFMDc-6cP87V?~0wH^3OH-LJvpBQP`fZZPuTg zIjm<+6xf8d+hUH4AIz0(nM*|;exbxAFM{03IlPVRn981O2F=Mx_|c8U%U0bR-`PjO zBiY70KAGNI`&06U`z5-y1%P)|B7&I z;RMW#DTQhB9AvrfmzEG9ColksC^*EWqQ@U^X@53&s73_AfIfdR9UPe%Nl?sAZ19se zoHsb-Vs0LrY6Cnj7?O)V^yD5rD9rIP#vfnR@X0TlUY?!({NOb@{JOT>4W^>weDCE| zh`Z;}1=;&K_}BEkQQe)2<6#}0^)G@B0orPlRhbbasvIXoEchsfSNLa{tG-A!frY!F5WOFW9XeWUj>$5R;v!lCxW$xHYpEV8f{VO zUZ$`hNXi|lX856+C27)$S8tX@V53T!EdBMHJhP}3dmOAv2ZXs(>Wtu8=yupZMkpXp zeZ=B$ys?my&Vai=69}gQl*9!fATf%ng4mrxaCLJF$f~2`WC!r^flegC#V+M!Z zbgmF9AsWIWoXQ-6&=F3<6>m6D&XnMu0fEkxE3V+-SP8x|)>K5ft4Zy5TrJ82-pm+m(&T2anFc2rcD2=5|*cdXd@1eeyx~Y ziOqBT5rO3uP2{EPTw~2ripn2Ybxt@yqcX<16gfz?enu=_L!>)w8QJLpg{nz)YjRb# zVEvxCfRzApdfI?Nd5@&O1a5c8wI|3_Mu$$S!SIOWZCgMb6_;?u;Gk{DJ`m&w6crW} z-QvReaai_f$k7?#`<2PTx1G%3*8Nf%(-Xw(*hFuMIp&>w0|O@Tv94Fb`=ZzaV_VM? zNS60-rU&DFeK`wy_j#jo{#yW+`DS}XTRF2;f1f(?goyZ@9-GWr6d89 z@!X=pa77CN!#jdE>V;KL!8Zh!_CSzOOc7^d17Z&ekV^6825i|HVnAG-@OBOM z7bAzwuR`dc9WAN$BZ9j>0PqtY=Bim$!4xheYaWa`MrrGo5Seq^kQ8JvJPa;Ut0S&5 zyv3?HQO12;qb$p2I_o{n)yP|bs!=%%N|1B1``*7k$)%Ab_6o@}!zg^{u!$j#;`YEz zMY4L!Q%oCALu-(RX_FJ+KF0Ln*M8VcqY zNE-;LnL|s3&P)Y$rB^&rRZBE^f=ce?t^gZN550;5U0g%eI+ZHDv2T>rc>+2gC2aFl z6(I+0C+OnL^<6uHsiS@UQs;yr6|P+UhZEV1UIwyrhi4lY*VzJ+E20CRk8BdjCqp8a z`turvu1g)akrS}W)$NhL?*g719X}!>bmkM!FhV6^;A`{RpMXd!=#VN8>h0me?M(|f z{|eyd#g6HkZxhgG`PwxM>#Ym7|2tdG?B&)Sa5t_6$NV51x1SyJocTT;w?A0!b1>rm z5N>bbIkxR3^X-(*fFc^^INuGR57$L}G>CjGbt(*s4uO!FGr*peNDw<4_(_c#sil!v zz@C*@5E~ZgNsSxnsbTS5R@k1kBnYp^)74vYUYk~OUMv#e`*2ot@mkl#kDY4QN>*tc zoPbYZoS z(BVqjM#w*#8%i=Jy11E0nDq{~*|t806S*_zyGwd&!1HX%+>A^zZjv>bMHSbWSHOKi zL>8M;c$b&G&ayvyTAPKufN&+v?wht$#fcFh>bvQS)0M(Jk7_Ic14v3hSbO<<)&y968%vWkkVwp3|vdIKnnd z3+ZHc^tK8&-Ptp;28k>G1o&~GMim>y)0_F2L2$D?U3-CC=r2!*zI=WZnVTdQY#UmN z>lUilX`eltF2B$!U$HY$5=={i_V>S*%vejNzWW0o|IRe}YqN6A%`ooG;c|`-u~r8> z_R-9!N^#F`rFvV=!s{qe)z-kIWu?)Y6s+0N+<_Leb@7tG8yNp4K{D{6uY{g?FGeTj zR~g94I=}#d%d=#gv-me@$mF2%zrwT~ulFgXg&b#ky0$^5Zk^*+n6CtWH{kpq1zK0- zoEEC;Eo=j-KJ-NMN%X{XzHTV%q59-iv}uG&yy{^RnHJDQ>ISA6ImK-SMuaM160+k~ zEL4Y+cNBEEu%Pyie1Cxf`P@RA*|*sNM^uRE04NrgCLh|-dZ*!6l&3EmYl-Q^YjWH{Q#+8^6>KH}jdQDhI`v|lqe7O5klZ%Y2 zVU;{rvupa_p%!^}Op3M&LL^VXmx0g+!A#yC8UR}Z3RNrP%9kpNN@*M`Pil!GKql8Bu327(m)QntOIrnmcvpEBQ)F~z35ZmYH0nN_D zH};y?m6JstnywHahQc=O`au5qS60MpuGqjNX*#1bk>>7MLtAt&p4H6d{^g%&T|Ho) zA@HswU{ef9l>8_b(MbZ^+X#|bc^9ZOw{`U}DBU%+TC^v_eCb;6^l~s5rrmbipxHI_ zFQ9JC)$_vD)-@6%qru7gz{GTl09vRK3^#n>6yH=bW#JPV(&*l|Z9XY-!jt#tInAtx zl`1`P2g)do#s-(4`BZ@8m#(}xIRj2gX4M5Noe*p8T-Z72s+$GMn<5w3|FD^wD=8{V zh))=a0DW*q#h4sc4MrSNwek3yb)7{enYReKvGQgWEqtFA(spxS+t?gVvSgy0bU zRV&jM$}fC9*4OWFD>C1-nxH4jVQeg-ZSG@REA?;dpc_*@ADey_(pkVoDvm%qIB0+*CMiJf002S%AF9eV zQ^8oA&6+r|gPNWU)XNchHqv%BHGR|@v$NU=oz}1@@_uY=3e?hPI4R!{+7vIUZQ;NN zoDJb^ZSRT$#|JQK*Wnt?%J_aM-qa=_+FJut!+oUza2k-@nNN%kEHF^!*ny-;(&A># zHVy2ZX&SR;=}X+MneJ`d$PeX6-5u*plAYY%$1=~VArD{hI)@C?tZb@!M_TQ3v>zCe ztd5msy&Lv)o4!kA`eA8Y5%#Vr5mvU>rTe@Sbh;?j-nL`4ba9l{lN(AD1e-YuX*N`q zE6RT}v5dlQQJI;e-ldOan+$SWDOTjmT!|>jUx{r^8@rEPwDlAMmXygkOFjffpb#qv zthmTcOb5qzE4WUn(Pn^aDATx@a{ek$e&-882$oB^l~u=v>fX&nTV2*Sg2Wt8c;m~v zx_G#kD(dTh`xzd-LNL_`+$yrXf}C}63TD+ct#6H1$Y;)uObpFJ>C}rpDWRm93FtI_ zBrWrB7ao+}cEXTTZfpJ6Gk{i!+M(iRV^@um7yxITmJrTA79M;K47uFD=aS9mRo(*~ zi!nB`&vy0tu3+7i^|gq(f5Emh!Cvot?i{bgF31dQVe0Rz`JEiK#Oyf+>))xon7PtG zu-ZUb2;sz|mvns;RxjsfhneqR`>F+z_Hp^EHy{b~d_IS#N4T0R2R*$Wc7VtY|EXuR zh_b16rN;1*C}w4eK{!FADmVLka5(ZD(uMi)H2lk)P6TZfV9~Gh-|T_rp@4V6>g$Ek zf&&8dFCz{@)7dWfW(J=mB}-$Uxi!FV?@tnUmvC|Q&}?{G1!Nmt-Q2#Api|ONy;kBl z!Y-OHtd@kzOcPO2HARm>QFT#$oUNP?HV_Xfq)kse4ouin)JoP_$5)q_Q4yu<@npqpLC;$Vts~o?1iM`6KV5*~CVPnpbTfBCLaJ&ZBv&(9 z_04us29KNfl=VBybM|uQk81O0u{$A?0js4)NDK53Rdh+!3R-CUp}piUW$%M-HZ&V9 zz#4-_m|e-ZW-)2H&ayQLl6M&oIK#S<7u2d_*jU0};N6cBpt77&KLYbV_UOa0`Lo%B znrem6=3KdiS1Z4IQQiZ7E@GrKo)Q@-3>VmKrk(5}FpP2C+eT*_ncbeHoUBO98I& zOFEakDT-3f^T<{~8tg78?J|PH$})knPK+TahEfk0j*cK zllkw7sJt^TSe`D;vRtUpQSV!8AFEjMi>sRBR13BAKBuBaO5EO+Bse&fouMV1M^d?^ z6DSDD0l3je>c6lWO38#4I@Jp*S(@0aTHNdlq)fWoWM6HwaBocy*kfG@;wk^u$zpP- zRJ7RjvRI_4QRw9~Hfu;zs24;kq+VolPJxusub7s;t5vEBwg}(-nxP_Mf9Vm;7SR33 z{KovkT*h^fCHninwcHTsK8G%RO&!wS^8MQN&=lnIeBONG|J)z)`&WTD_Q7?G>$sVv zyZ0Rdh~OQZ@3(oT-Z!u{Om2s($=1H^P<^mv(HGP)+xA66$k1(*&ZmEE1=PkYXHl(i zeO>R%P~`HYAh4XJXlIseUOb=(yRH@9UTYv4pFF7R%FFtYnvp5Wt7uK=;xjN-mH}&o z$?3hbcb&8xVuI=QFg3sm{PN;`{SP(?1AG;N5E=l0>tFW);s3T){2xK; z486qeJQ65|NGQ~pr+RW& zr&LLq7N^pbTFOHU7Y$hoUWiAP8uNAADC|`FWTJ9%N0m?#QNTq6R6pq! zdBQj#=$Kyw*0_yQLagQT6SK9@{7UP85etd-{Su8Ci$?@The7pUl2uHYh!zQi2fSW9 z%n6kf^H@RI*b65uj?FS_E_NuIEcHqlm!wXhkVE2Hf9Qg9)FKS?L=>Hb;lLzus2-@f z4-T^pS09sOP10T9h9%*mTX9{`F1Hc0Yi-U6@qH|bz?Z4Q7_?gSN=<~*h~ZPvBVCi4 z{(kNdg@b51@*ynVuV2~vGa=ll=*W%QZ!Hc~T0ED(?KllA-CRs%UX*~@k3%0!*H z+qoD>{DJH)WyqNwLq9GHMdL9_1C~=9m?kV(pARc>_POk$5QS16{Dbh`jDr>XKzv=}X)} zA-x-aGWpB^f>_oo5~4U-i45dOq%o!;j`j3m{ut>m0wR+a0e#+3SwS#9bhSb$l!q)x zHijt;?q?7|aR3LJ8q1rAC1C^!w!$H00J3-xWEb$KIHOJ_R6-xlw00jl%>`5sB$;3e zKqaw|`cQ!)++o$Q4R#e_g;OSoDY;PnfG|K|h};O^N(Q`%OdrE~3dd7hv2l>tVP?if zhp|f5g7yjYvPkg+HEbu|7y64kZRXmF5>~JEvk56Bp`ugc@ArGEr+7Rc(#oUXBz`xh z5DvW~rHLpdFxsRi29&vJ*8sjSq3O{Ms*3lFxirgKNIE~kwCLTS>B)f+tXQla=$V8a^5X<~V_TzO~CHsubmy0fEP#l)M6Cr;w% z&iGj*(P8V0*nCGzeA~cX zVfvHQOQK;r@X;r)lF_nH3R^jymp;S;8SWYx2_7+4h!6_J?aTl!KZ*;`;vI@39;twk z$crNq_U0dG@3_0vO=x4H@U$ed#F#GqS?)VCs1~*4*_&gwNNC3kOnfw$g|J*36i_fq zUF)!9>S*l-&U%Bav1=62{ntCmdasokl}^ix)*3{j-4>VCK#u`7 zj&+;`yCI$E?ME{9=ysYxd6j9xWS?#r73lW_L5)Xx2w}zKwUsE?N?4f_rEJBnQbsgG zRj;Yfd?Ci>XCj2z;q{F9%ZHn#jSW`4aN~jrgAf8uukW_LxM|mrGT@paP-NrIHM&&G zT6f>i_3-6yfD8WSymEgV?JH#w2AYDXRjDrGS(_C2+g4q*Hoe?Yvr<;6-MLXSKoQvj zhht>#-r}t-NVq@g!two_fr!*5fJr1c{x3`$MZ!NTv$b-RI&W4r{g3bE4S^9%j$)r^ zwN>oVHRdwnrd(ZMSUKa|Kr~kCQofv40ilvL+J?a#CfFqc%37;Ac%1A)wnAJy0#fTV z2?Pvm`nDPoP9;g0wunfwh!f0P_ueOx^3jo}!opRvRFM6=u+qwz7b6u_3+$#+a@0Q} zlfvi}&+I5yw2pu1=cy;A4|x2jIAgPs-P>sE*We}h5Du6$PKn*dgV~`T+N^a?#ZlMB zA%Z2+OsHaIJqJJ*E(5mggeF}~G}{uSoQstdI03M`x>u<^KT`?3wrxxws?=FZqbiX@ z70HYs^1imAc(ax-)#Se28(fo`zyc;MzP| zINxGJcLr|{U$a7zlu4{-*n&;vFU@K$PV$hlde(rPg<<ewRj$z3><4Y z8%LhuW!9vQF-RY(FbU)GT{X6&&{2ZXx|*~5fmDn+lz<`6V{cOsgL2)T=sY=x+<6e_ zaI(?Wxs3+g5^NS+;!FW{E;_#2Ol5p?Qi&aeJYd} z(t2lN4Epg{NVM=O3mZlxC2i~I0b7FAPC#wpN7JmWJKKd`=@HPxL2ztTv1Q@~ zFRG4yiIuj6CDBoO*0qMv7}F|!8q|&`mD$P&yC_CvN>FemufnMrqn?Gaic?n>!VazA zUcZ17B6In8If)&B=i6s6+eR`@pE-a#TAAt=`MMbmQGGN0FUZfGXn3O|xRJIf<=quI z-fEx3(p2x8lSMZBn30*W`YBekk6(VdeBttu(H0mg|Btfk@wWDQ*`{wugKqh;&-Z?^u4@e|G0IR?h2O{%*|k|^LNA%q4Ggd*ggOr0nCBpPQ!ZA_!D=Qd-cJoRX36dtKy>wzl`Xnw!PuQhpRYlPzOR-G;)w zx&000ihR4Oa5zv{e3i5pLz$Eab9Xwrx~sItob9G~P!Z4*QO2Cy42P;(UAurjz!6y zIYEHND2?OY8&iQJPkOzxhTMfpYeo_Z@24lwoo)BG2VGtjsTtAntYf+qifC0{tVX=^ z+M9W9a_?}|sR8(qBnY?0Hr34PDE7U6X>=yJ@K$t@DwfBLPsWHwtov*-Kz<-C3yLy{ zuNn*wuVodDo^?ru#(Xv|wzir`uOq)oa{(*f6^q;upiwCwi}H`0^f%3RhWcB-#(Qt4 zIj}Bj3{M+1*WZ0?19h0?+$FNiJ8-J7Q8Dv022SbY5Q-TfX{up%SYM~Xv zs6_C*JIgvDT9;+5BZNk@blT2yT^K&LPg<+pdDp(zLf;*(^6e8?zFW0(V{eD`E?fkP zkC~f2Tlcx@rH@V5K38Yq9=?p$`a14wG_}p`=Gkk{uFp6*$EHneg>v6z zynyS1a#1a_>lN7MF01D`y8A}Yjhhzm{3-+21w5C`ThV%X*-pC`@ayJHxn}v*_V3Fb zS!k-9V8{0Do-<*&%c^Buj)Z7dE8l+b&JG(lE*hAvtoDY&Ijz5%w;#%V-#1PI={>Wa z(9z|z7OOnhEinukZY!2;^;IrA-B!KU=gPcyhR~VwXA=1I+TG(!*>Ar#^Ea;R8O?g` z^J8OFHrMb?L-?EQwN$L1*Vt}TqJ8coW=+P9W##L8Chewg4U5r@fRO&ZJ(i|4=iSR! z0oXvxx{#zrpThoD+|K)ch{ys^3=`%Ko!Pitz3e-T0kCQq7MkmQlPyXVA#%QhX# z9Ka^r>J+k`Ut2E%HXGjrUq_kS@I)YMq6j+P!B=JMF3B*u_ynWtzt`})(7g&{*m@*^ zqxs?}ZKraO-98g*Xy-_P{0ASHkq#lsby$*FkscovnuBH%nj9a(zJ5i&ZN_!>qbd^Cv@}kooyy_L!YmiP}{>x4hj~xQfPzBoK75!QxPL;WWBZUzP&mQwv zV=E|oFFKt&YtERSJH*l%xCqRw-mG@BrxIMZ#GasZ4im+V<+$^$00w^|=?75(v=hfD zH1P8P(l1)~CzPZq*mW@8n%eL!XW#RGylUqxZun91{9f=9NT z1HaDx=@p#aOt%FI7C}}gGPrr$AxpwV>O+yHjiudmv^(nmdU>2y7v2%G>Duly0Ee%W z!HuRV+sbe{4DC=Clb}*@cSSAAwg6haOb*8d+MD3E661uWL<_`z zNU)p%1&&HRkFbMH*BUwU*|GC?SH8@7giewX@X-=UYSBIInHwI}jQCG%a21km-0k6mrCG0F9;gT9=6gn2wQr)Omm=o0|%d(Ja16fm<5F!%iGgLp8OcvZK#)wZ=Mupxp_n{z|M%*9o3Q6UbyYmp-lf7$Av z1HdPaUad6~0%?EM&lT>vm^s$`r+PPM*G(QlYA|dTmM!wbDdtmkZ_-P)!JHBPd=oU2 zsm)38tPw^G5%xxvIj1D9z@D3%G*6-q@g1Yz`Vg$z0euoKJIe(SIr99DM~tHP?=+_p zH>t+R#AyL0CfZ;KNPBDxKZ+S#c>I!^l-hE{W>$7&mlYfx_q8%z>+oxQZIrnsy>M4U z3gzq{3k58{G|Wi5v5vWOfSf&QoH$I;WeNml6y7@HfnlB6kQtSuuUz!10ObXt$URS^ zqzueygD^AW{o~ZShL--S77z?_dqcI!JCDj1mITIokMgICFu|}5b*cpKM)s*p6Ed1j z_eBtMV&O})u_@078=;_u;>2~-%3QVw9+(e2oQy{iRpyzv@ncACFYdCN zSbAa1$Kzy4W$=s3COxuP0j{qn@QuC<)BAbnN-R`so?7Aj7-i z%U^csCER!oeAHpZF52?cUC;4eIRSF7UaQV9SZ@}4U95B!_8Kc`l(1A2{KGyoLRl@% zFlmWgubm2U>X7LxSHAI0&BWz1YRN&mV#iv2RYJB$lea~S%6~>H6qhaYY|lD|h=jPp zGJ;0R$>lX=_U5oaq`66#1aY8lunVI~d;hH67<{bT0+3wJH2bYUn>6O9wyDtn>l(D8 zjF-rWWWjX9b*I{2GsnY1sJCmSnKa$is+dY#Mjsrx?w)UjZ zQXv(co(a+MVws3#O^ZE5wz~nYmuYD^-)sAbOHl*bxr2eSuP|K^FF$FZ;?sx#TZ>&< zk*+-m&?5;(@G-(<@aCf5Y6^awJK}Q(O-zc#oas0%k6=a;p${eb!Drg=Xtv<8X!4sdWQWJmJ>k z9AP@gMf|kjzb7c|qNU0f`kr_VFK^1y>1L(~R=wM1nGnus9QXZ(TE?@4HpY34XAzH< z!8D~WkM-GiD!pfYOaV@;&rIXX)$ir;PT09(bpmxQIs(n8k5t4vzw3>GeG^EtgMlvc zJxZ<;*+EdgBsU<^`+G?^tv+zH6kQz11a10trxjY-R~r01q)(+%zgQohT`NlAA5q)! zbW=jflw_Rv=7_lzU5b{8#l}3?-NheqmkDOQJ3A!qei2Pmj{mOC$cmSM)vaYw0IuZ+ zxthX+%wmyGHFX(h7OM93s@A7|tRI&3Eh)@_iBr1?+ZA}B@yg6DY*RWXpiOrvTwnQB z|F9!it|yK_g_G*^5xBU7kSmZnd8^{)SGwW!8!_oUk{X0i8Jgm#S(RYwER=O?z2X11 z=%FJ>O8^QN5B(@+Wya<;&0tY7*CaGI3i0?6A2V+w9P(D{o>?Dw#0pm}D7;8W>&VST zR=)!gcYduMPbH&mB-YvRF2q<}cmGtgsYX_(Sx2HqJM&!mD=)nO;vZA`N9?i5sgDGR+i*-)qNM?3Q<-Ny{#ia2-XVY#1`56>c{rESJ_3_4V8&}M7n zxs=MK-MHm0wE%O5F~KnEq=|AcA7a$gp49;N6+nEYFng6#tNUf@@ z^MM!wZ}C61t4@scK-Vngx{8%4LNrnWg=E{|7MNu~WN26n3C?QTueV-22pF5>wIOAd z!N+0GP2Nr3WwrgMW1U4sJH1%#3ahS}Z>Q($&DgE|PLIF*qSzPbycsJ&J;k_|iirv7 zjNA!uxbEp+8x>Vb-J~iD+E|_L`N@c;v<_)$V$yR`Q)@%DzolBq6#5p_vY_BS6`@qB z9YlhdLI5~6m#hI)JvI5Ei41d+Dyg$607S=J)@)5RqBAkls^d{~m#rnyC69m3w6k=g zfIO;5R&G+CYA#ystmKN=sEkq2#WWX=aK`j>D`GD=)_P`e902U7js_MwTNXOB9_m{r zY_mlRt6HTyjP690g*6%(l1aS@)2(eQl0d`3U_#GqN9_@{s880N3@__cP^I%$y_~aR z4>HnXDFvx()$0_wrasE2tdIs&Oh*AsNtanwfBfRg2+MC@iXDNqOh~$?$PThRaE?%Hj2{loRH8 z;%k7mMvzTl-q9ltu)5`_# zZ!bk#`k~Ji4~s((1B455#0?zIeKFt$pff$(Iu@85$d=21vE0IO4&#u*7QY+g_+*u^ zM3xcb4{GBtc(yC|kqTQ4RiaPpV0kj%CfoNA?Ky za&(Tf%E8aV3m$YGjR+2!Vva4uEFKLGk~cBj!F;2INBeoPGweU=9^eyL9(gMl>=z9- zR}WwNEzY$zqpl}w7?v84qju-GWoHW(qT%C++y0r5V_nmKEwVTY_g~(D4z5)hc>REC z54K|kVs1u2Ei3H*JFtcEp?U>kR@2fI6reml1T?5o2U;e>Ls)`DY^>(Sy}s^v24!6~ z>Y}wB2aKt4KDVj=MsA6g26m_`J@I z*=kT{T7d!96)Db_&aHVyYYaDT<(X+6Q@C$xX5MsY#raWxBUmt*>z92(?Y{EXtkte)L!xFO=K(q!JQ=%V$4R83`lCDbw{FXKhN{a)Fy~xHsWNJ{%>;FY z|Kd%(7^aWY{unw@M_$ee66ofvz=Y>!&;wp+XV;P#}!A9^QkYJOA>aw$ZznXvsX8nm=k4I(MdSU ztgKpbT}1J!U=EZ1%fOT5c0qx%9ab5!>PBd9gh4)LA0bhb5<%XVHT9{^B8m)w zK{u*10)|-NNaR}DuT2;Pz7c>kNTx(!S|I62Zv=ACmoO%hmoA|A8kaVwk}(OwA?H#M zTS~4(YAqb8V2y~aHvxEZp=eljjq=WwDP|cEBx!s}kU|dVCU{naTg5%gY~w-56^A%++d%0RJ2+$s6bp{cgF=KJZNeTItN;)N#=E!~xP4)$jwUBCf+vO*eohlKD@(C_oS818d9_&hkTS zo_cH{w}|lmDO~YibQp&N{n01NHa$~H1K!w_6}-k3Vz^-;mP!m$2Ix{?N?^J;BZDp; zZ6!f~a+cd@jURiv1srz)H>z6j*Y~x>nab*#uzNM@pp2XARzLp#(?#G5{K(fk;P=+; z?i(n%yLDi>`wCCs0yW;At_#-!|6ZLOeK)RqQ0)PlSMejGZ%o}mOvHVSEF)dHg-P7k zF>`W;tUqO6i?~1LL6pq572(hGp23S~>o$TFUynYDcoEcBgR6fUfQfQ|_VwD`*#P)* zr{wIHfO_Z2xNi4FVdgf`(Z^vbTI&sAfK!xmp6dBvI_>Ag54!ywHv&i5aTDskPl|@7 z4J^pfuWwA1bK2-P?YTpi!MQkuKuj=4W<0^M6V0)Ia$-8a@&2`i>|(?2wL%)>#xNaa z-!v?uTnoBKSaD)M(K}{TX!M^WWAX|wHqk)lYv^~+?ava3dF~=u|LD0XTDL~nn;V++VwrID?97BikJ4XEC^nT zfKfe}>MXcIxsj2p8$FTb%BaLCUwC7S7-ME!$TbubbHXi6?z}Qds6X|lGp@-Ibaz0T zY59kfs})DVQ*(h0T;PNGShnxpq%3F=pVI{!6d|;?_-?<_=(; z2_YY5z&@_SQ5YbCW!0Yv3LSW6puL0H#(8U2MH)gO!6HNrqOx|-uMi|qsJ<3xCZIx) z6E(t<0I6hCbg!6?oM8|k0KkEg5RK6NPbENT8RR`aFx;VAP|_BK~ZFwC1O-l_8=F$B!jeegw>tQxS`yz zDfUSfMrjx-YvcyT71oQwf;DFflWdE-BUu)=l0+4~LtqXJMDgNPk&%RDQOFq>i8e#^ zfuEz6JnOgsw88tvnl+xuMUrMIz@rcP(Yl=UQN!a9{X9BUt!trs5xWe-voJZUFstTD z*8E<)qdT?}=fk*)SCb=}+@odK#6(Xvur9e3fUJXgHtT@r=}8FNwVhTge_5tCsw1kxg2)eroOeYYpj@1@EkFUm>Cx;xl{v+C})j# z$pAUnIb^?GRiYOyQ#&9ZnI}lGEJV759khTiP)Px*8JVzL!6&Ul+j6#*G`0GU40Va! zp!43_v5KP#lK8~vWg;zB>lWqltXX`dRuAI>#Au4MZJ8qy!7s_glr+N26Sd}LAd%Ei zJ3tF7m{xBbk>+4YfD;K*TTmcDQ^Ydsl9M3Xy~xDez2f2@O|-g=E#q#*u@Tg2se}>2 z5QIV3^Rf|B4P==s&<{+u7C{ zy)Q}8KDY{y)~*cpCKW~L5qP-4B6$+t)%9;%6%p}1b0ZU03FGE(alJXV!jcKP`!oMh z`SKCnuYWDI1SCR*^7=?*qN|;6GJM8oHP$Xie{eek3vDyM=Vb&j0Zfy(aJ-z4u#)HM z4{Q%XT`V?KgIf!Tua|$kXMhZdQDE#Fez_eKjGgi)9|?ltle`ZqY=>J5*kc3FH3W1^ zA9{_K8{3th8^WUjuHjMp^e8I=FWSEr{3;IT@^%%l_d15F=N0B{h^t@lwCT5ZD1d$y z_+=vETjQ$*ESCorxIfZ3XI(tSODrA%~AUuIR$=+=znLpUyi6>=Df8#TMdFa*VL9XdMWfMR5_Mp}RoJ;q=Ywc;e7 z9Iy`x2Z4|>NJ<8>3qwHmQHzH70osqx*&hI_$_m)ygk?C(MI~8y$pAZ~I1rY*7p?ip z4x;u|Bmz@HE)062AU{Zq4)vH0H7j6bPhBTTH6QQLh?->zzXY*6`Rb<-uIKSx%flLnko6_Ir3QxN_k|<#EZ1K*$EhcooG35Q=xo% z`w?F@zD2X~(P;;@x=b)h5#KnAnuM0jnv~!Ac(z4Xjk$woxTYE7u+HEAkDkUk%I?6G zAW7envs`bEVVJduTaa9QM_r<}b^jvKs_@Y5~zZ_SK3ZOM>7~2iiqb~A?&e7LAUo;BCl3AAJMXK(GExR9f|`x{pSK; zNQw{JxcHP++cG@ zCsq5Tt7P56U}M|r2)+yK^d5k`**Mm7S7GzXIY&ecHw`IAdgj^~5aWHf^S8IJUl4`j^d1O9E=#m;4K zd!?3mbGnBCD!+#Jf0_F+;X+j@L&)V1p7#9p3UCR~Id*V)%NcO-Mrcym$3Er-_Fv;X zf0e7gyX}*}WY3+gS5-l?uDtT~i61#H^zOJjK#-FRLUfg53{w=ixzdYp{r+ zmFXu4*M%RLV(VG4RSsmF#D(XBgMWMVtFy+}kV=t1?&yiWnbG96+4ZMP4m-J~YdiZh z_N2HiSZqRIjiN}ER&_*-#G^8C+8f@Pq4D*W`sD`2_`2tTTVA`fLI%~c)-;W2Zz%9=!~Q+ zN=KQ;j@N@OnP#$%>0DDqi_w+Qg7#CMH~H(V;RXP@wq6#M|IBwh$zb zLz%>ULgI}%yy3GsZ+$O)PT&|Op5XopQN}Q20L&#vM|bh&WJoO{Iua!pd1QfBBn-hn zf4`E^r1j-*JRF{_#w1}C)Dg}?WWvH8VP&R-Bg@?WY>!K#1sa3ddZ6nWn-Ias+WnF` zIU)Cip70gaQ%h}e6B`)lI|obuerMw208Lc(l`@EYJUDGy2X@rI!Rk|6dFyOG{stEO zj0~tCViprN(&UPgbS7obnT@9qNQ!&HkFr+|PRjnX6jS)K0;LKTK1>m%$RaCrLaVf4 zx~($;qAkXIi~gLE6M=iat)!fe9_|3DI{wDik;1uKFbsuEnvjWtFK5g}nv4P>vGQ;q zHb}rnR)NmEh#Q>J$Fy5x?(z9-X{CYdwpj0$b*I1RvGFOhHrLZ=POG$!VT-C(SSZDV zcJQQl!l9$$?_*I$Gh=qEAqP&mhajxS^-ja4sLo#t<(S1`T{dJw?`Exg+ks{`Z^i2;tE;t~X{5Z8NFgX_-}K)HI1${@$=RT;qp*@ib!RCQ8!_%! z86$OK!cDVTv)YZdvjf=f;mVPm5>dEbL2I<80qz(*ihXBY6l-=5ouWT3nwh0!dZ_O^ z>W|~uNoH;@jF7JA2pK79w5fj@ZUR@vLC3~INq80^=f;$qJ*#g8-g#cp>?oOAuPh>l zh;(`_Tc%3#GQnyj0Sg*4Kn-RMOM!qKjqD73m#lY9I>65zPBTp2`Y1pS`3C~#%#(k8 z#IW6x;&PGB(sn=G(_doIBR{_388cD$3>@qW*2%Wt71bjMnukdj=f~P>Gzt^JB4sB! zYVnYmlF;?ivZG6nczB$4=%+||%^tdTcF_F)=s6A0{~-5rwB#YZxAyl9*er=&^Bc~H z78|cg=W8fh5dl^q4SB=N()`QWJc`k1->}? z?p9_{v0kCVP&|yN*=}yu^^7BJ0o^tQOc7TVmtoJ-sufLIEn%1P33B}f#$Lk%{=0o^ z?Ub4O&9C;?o?r6UnliqcQs2m`OUrInL|xhU5oFnXp;%n8;G%~EMb)I1H`U0Rrp>3( z)$fn1=O0!SZG3`oV&`Thg+48XHXY3kaBhEZTPeMbU+TYGD_??+Ne#$5C_`Uw zb^Wf9oW|JZjG61rn$1cB#@6}YG?zBgTZI+7I(2N#!u7d9+?}4f33d3RXLvQ{@$#)d zT$CDYPoAR{MOe#99e_2QCDnhhd-@Je!7j2*0pBc+P}7IN0QMV+FMm>Dt(hC z4>UKbdE9AbUI(ne@O$$Hq_X^bG`LcPpi{q4BclM2YG$W;icJk53(}b~+m6H+a<{TgA{BwFq%{^*b~Xv-Q{qXsr*DYUJQc{ljCJAU3QVFmDp{+d(Q?g;NE z43qY!Ss-;RmX0R&2WD*7{-@31aZ^2Y)Lmj1YAvvve}Ek};kM6|Llr zeTnhxG~(@)0zQ|v4{OZam*4ISy4Ip^@6S~}^hzYigs6-{Q;S{Y38L9sl`aTs;+cYK zX+$b<(Tf)n$b)T~h(=!#N2Id`$9%;Eog|qF4m$ZHm`6%$5{n{NFN#6H>u~-17f`zY zLDxMnY1T$vf_~CAD{b3$R@%00+p4r}+qP}nwyl1OgdtCwpvIZ-zx%VGZ534DCF^^4BTf{%L#3ToiP@DbrOrw-d2= z2@&d(Uc^xG{3eN-QrB4bk$tC`TmmS`p+1;W3+SDMvA4ZN;%V6J8(yw{r9_%+lwJ0X zpnpsP%nee+0Wqclh(o3PhT5KY-=Zc-ALd-CSdg%r1o1HJDvNMa+6NL}SQW8o~~bCTbL!THpgqTF0r%Rnxhz zb#uZTP{AY*R(Vy}{U?}c9%1sDvX~jo;jSA(xg-0F#^OJBt__)-L98arq zTym;j3UvVjodD(g=pwqL>4Ek1V|NS4H>H$RP}{zk2~I z@?iY8(JE+rt5^63L(d&FQxiEs{IXma8QCfRITQe`ffzihU+Ym8rn$Oxb{8Gly#~CH z1I&wVm0CxXd+Bc?Eh;8L6!AVtrpxaSAw{L3Zs{)D4ja81pe-3k4bPJ72Sj*m1*!Zo(LDcX$f6e zeWzX){T=Qc_G=$=RUKzLtm&C2!<-ukxi`)pL!QHn{^}`NYSY^2{DiQ#S5BpoV?HF@ zr^%i+0oUs<(M)75&hseqQD4f+Q~AKGrn}6cTLK02YP*=SB?2}>@0tLxYk?dsY)#l7 zkyc|mGbefGOj$aNJ13OXq^Ufn&`k_2EtH9Cae??n4`} zpiYL?lJ}Gv|<$9s!9M zmM^AHZ6jFyKMQp!fF9XmW$(S4Ibbc_b4%d#b^hA@e9ey3W{jwIPE$GkOc!55D|#OE zx3T7W^fO3mk|mp=+z(Wr7}2B8Lq?w;DK_SyFpsAarY@B*>4XbWg80V*g1iY!cWHDd z&on{l#I-L*X)~%7brkT(V5y?mH}v(5i>M%{Cy{n@3xnY!qaq>5jli3Sb|F#B(6Zp( zI$cL_Zjl8}H2WGX{uiRA6(dkIveB% znPDk+qOnbVMbeF-4~P~E*>N=XX;?jIavJ;bq{mTTPHyeFs15CxJ@xmhC>5!n{zDe% z!nO*s;bl4#7pa#1c(?d8w8|q8ebbd8`r!z0^*Jjk@GPZdDN&%BvMy(d934v2dC<#r z=q$|;`E0AHakn|M5P#&i&>PXa%y))#$N5Nl3{_BX;aF|Z(FIw+D&hp@F(Y^~`9?(? z+A#jpGl_ygSCxG*4FA=HWzwZt1C|f_ZPMFGd?vM=h6=ebE0YHt-Ou!+%1@d48{MlJ z7%sk(1g6<4Ep3EExz zLrY|9y;g)aR|J(}FMU5TO6pV+%$VxU#+Wq)f_kV$OjfkrCGGH9rLaAy1Q;vjg)cLC+B3|#!MiUb6(6!$cRg^ch#-Ka2;mt&=fDep)*V)Bu`V_0i(9d&08u99IG!XcO z-#FHjOm@hoI^G@V&_85+68j`=(fnC38gIjzwh=}V0yTi3Jnn3eyr><*>Gty~#IVw! z!AXsbeE}U!o)!c)rw@Uv5Yq=)++{`CYL8Sy+B?zypKoN$IYsnDKm+rv2T(XY7)QsD z(?l^&Kib8$?Icoe?A~6R;b&;7d^dPBc=Y?9an6rXsy80w|9DO|0D$2Cwkec1FtRc* z`+ot*?*9^k6Y9Nb_ zgHU0T+_Q*uHz;xSFiw3W8q-RUUV}Ik2pG~r-Zw?MXI$@`w95f2PXJzn@OmF=K`IBc{3V?>u$jVqU+{d$y)-{~#QIR9zvA z6s&%);eu@5`?naIZqGoj`&_}&*X-AS=Wkxd_*nv1R^GJ5de?#r&!e+n@3(n5Y+4}< zPha1eGF1Cztwre>XpbIFNJ%V%ExJt1hbS3_Sb*DOY;i<7y8E znJ&BTv1O6sIep~#LIZw*@qyU-`iz7?PbCkT_nH)7i?HZLHuhVB(I`XMHz?S?@?6;v zMjUX~K2V`++G|>tND4i8k zT}0>FZ-xP}V8R44@j(^vg$Z@y$aUX+Gk-D$EK{Fneb3&M(xUcThEd0Qk$aSOr$-8a3s zUL%AmmoqJIqkmsmJ{`6>eZC$gmuZwqgq$M&x!FB4RQ2A7Ce)bG z7BE@hgFbi6P-~iYSA^~JH|KF*f3;R#u~D*@(Q|C|ZvrJFUpnrzJ|dzB11SQ4ALF$- z0xF{KFoafuD=5Q*NJ5C*L!JrN7QqE+=pY4a5+T}CEE3I2alDo75<9^CnA(Sw5Lga` zIeCKM0rDU^`c%Z6uNr*F{q#?Lyn9Gh;G;5N|J7NYKT`4_WHAy(HzlBjx0(?;U~Cqv7aFI z;^8RQyi)dr}s|L3&Q$%6&R#Z$i1))hzSfY}Io z0OpcTnGimvs?rH1$A{EO5!CQp?zxWUf3@Arwc9wnYz%@%`SO%6r?40N(po10$=mY} zUF$YTzvLzfd8<~=5ipAC^gK-!s2Ou@$p3Te4|ZNIA|t@#xh7<&J1BZQqjtdnC%wC_M-f-ICsLC5+KzP%_pecpS$#38wT?JP@%~a z6sF6hktTemLNDuDTNun4k-8MiW^;DWh-}m)Ubj06q}_z4Q|~5BB=WWn94xp78bCfY zvy5m~1S`n)Aa=;+%r8qM8OgbsT*tLYx8RsMGouDu;b&R~-pff(D;`f!DyEdnP2+Sw zq!}-N6w}B)GaQ)xJ6|1O#s-@An%$7$)MlYrb_f4}iXtXL`40)7JV*PFf5+OckGq9k zg(cKCpqvg8EY+igAhV{JVGoj1t=J>4uje11zfljZu%ti`uPLF}`S}&vJ;%k<=(caE znrmL}nac)yH^~v6U!5_e9uQ7)I+0VXLID+b2#ti-;%U&5#&jB zD(!<}csKeF;HcX^>v4qQ;Ur7&MWv0I;Jj=npOjiv1<0J6CuFQ;rSiKGXiNdpvrAo- zSPLWfp%NG;g_M5)E_YJa<-f0@TNAwbF9%VEppQ!;rJ2FdZq&%Pd9F$lWfiUl;vjx7w`LINhKvP*|1-bno)<{!_pcVV z@-_v>{_L?P0p>$IbD-j@syCBQf!(N*vA(gm* z%VBeVSdTY5UtO)L)Xo=m94!f=W{ zbWG9RygS1OH>1?x5d5d}a0OEb!sM!*Tr1)&bqR*CrGv1Y64vKGIvJ={S+Y!x-~F9Z zBX#?e+B}pZxA5W5J4;Mq?e@F&L%Pt)>IHQkhTso7)<=2~6$yt`tj9|Qn5%fShofx_ zb(7Q6%+Q69B?sFatQVDVl(V2b!D*pxg-kpuQQY^6S3mF}JH|+q*t`3NTv&OE$6Z9( z{-fh%yd*oSYHCCAx)<&R9*#|)zZ44kdxHCO7!GvvhIpVws$a!WnJ+I-Azi<;pb}Su zDx>)bJs8DKk*P`)=aUnrbT}FU2aUQ^1F>MiBregxU5aoywyJDExqC{Z&bPVxO>DH zpVX#5Wn7zaxL5@AsYtJg(3e)k`y|GrJiYj2bO~e~`&1mX3Tqq#AfeKoZV$ zkSYWkQeCYy?IK%;WuFyo3e*Let3)HiSvfKaDVRVatns0mQ{suA5ttLZoN6K z`$kz}jSiQwGBY@EkdXm7`3G3Mhojr#n_H?Z&xB{pjv8BXY9FFR%NS0fYg-d=h8jJ| zl~=ZK5n}&PWv`P9_KW;2_OooEq-*$$n7We^wWY3Tf+w2Frw|b}$$F>TB^Qj{3x`Q^ zB*`R@CHO-Z{K1?~?+Yr=!p=KjEXA7;cj!o|S$O;(xTGJf4~yE=Dpe31P6sVzcE{E) zgzW@`mA#eoj1ifD&x&XCT8%GYe#&ATkv+j#)q~k!{k)QfA?7^i-T7 z(0oAg9lJ0v)`O)S-IAc*i)$Sye1654&$L`g}F9c z4VUSRqgKbeowp<}`v~w%$wpV?utprn-23o$;OFRF zwZF6nni3Plt-3)y(|lW3X=*k~V)M{-$unRG9~}P}ZOPt$8l^0R{iRk_@%m3kC`Q}3 zc+soa*~aa>2`9fyzePRJQnCW|QCcIqvM0=qSC z6L?54FJfnEA|9-E!_~}lXnl;va+6_dRFdRJ1bXq9nm-KaKLZfKK#fI4HNt0I5r>$c zSI9J1!5^kv9ttNU#$&?b@NK>_k*7Y;@ zd}RT!ovf_%(KJKA0YVh-sMUYuYbum?3lJwFB>HEkbh_nnf^}=R3@s#C6q5R$B<%1AhzY zo$Pj$%Cu_eza9&zlx&t_-+&?T;#BgL>S}YnIw51S5RqG}W1B1jwxO6Vy`fHYXluza z+@%=((P?@(hqCQEdyM{6;g_KarSZPE0=@vrX;ketxM>@pF2VoYcZ$NhS$R{59B?pu z4)8Emy?ZU!LSP?CK$^!BE*3*a-R*1SZ8Cg>+P47_ShslP72rFXc2d*E5PJ0#hi;|F}f~sX!-yZVllVZlX zlTIz#;j+})h&@F}jnjeme$=(yE^cVviPkMtKLhg&xB@B;Pe~qW={-^MB-eEemw8)w zP?|7bhaLb^&FZikenL8&L(Wh13%qI8Exz5fr*t6SX&TCn?=YXf)fzQB`1ykOMa$+i zMSc*QjB}doRuWn1g=VJyiq5U@1o*7~{*Ye?R;qAUpym4gw5v8<)wZd(8O=JN%xr@8+tr^4&Y+LT| zvNPeOEpla^*16BHTwSGj6Oyz(7bqQ`5h6$FvReMyVBZBjt={m9rejz+srTbF8s&Lu z#qxrZl3r!K%i;~@Y5;EG-mysFygKFQ%;jG^l_B#+xs{y;;1>m4PxLSL{{sEb$x~;> zze0!qGU~oi|34XZMH44G7e^zLzZSN}CXWB7tEXC3#;K44k$1HBzZPf`%9Zh>7H%yq zVQU=bpnfp-22SX>XeNJk36A893BO%ipqRw(w8=JY2SS%#-&!rtql<@AUov|r=5;>m zdTO|=Qw)12pYKb0_Emg7fw}t8a^+6SHWe^7p`e3|N?!VsG>LJm8q56VI53>Mb-i|(G8_~w=S$YtB^aK^ALk`T);6{X-~THX_TEv z(ad!<93hG1{n5TB=0g?oQ!=bVT`e>{s7$_9W9zC~vMuWvS}j6`Ue-HedDxqT{%C2a zJcP5HG*E&{EcU`FNjv14IL=mA{V=dB5M1U!%M|%!Kh+gWg+dS?3V+tMnL|daikU>1 zn+Kf=)8hvD-BYF^y$4*9+bpabLPG4 z3b|9$=g{8IcRz#h``ANT?Uxb~(idQAt9LqF%(4Yw4|<~177hs`JBh%5+annf+8u|S zqrx0wx$E5nB@|W?lPe4(GDV*@Tp6p3xsTnmtBA(OZCk+kL5V`qdlXE=6A&PjL}>P?R~kY zCta23lOz3KhAcKu18*iY=W}KYbGSm*a&4yF!VOh=z2xD|vWXv-k27Pl38xMoSi^C* zMlrrL&d?1Jokf^|We~QQapgWbBhu4xcsGa4TR1iPU*UcCjyX>z;%L@i*!R z2U>3TSwK9YD$VmR{jfsb?tGIczVm9&HMI|q8!YxQ8ZAj>Hmman|j*g?$ZEhFM z$nue~yk8Q4C8ZwXbS^hq_)ps#hsXQ>r&~G=h|F>belCz_Qt=az* zBp>Ge)WQ}^_>Zk9C=3>F_zT=Mz5^cB2%TbN%XkMgbLiylT{sUpf@hkPjub2Nwp*+F zjTH?#^M2E%5og*_`QLZBtTH{aIQw}!uGE}5dlPYV(4d%IR+(dC>$~dL(%xJQf3hDY zsH+XT#2|y#Ore65>fnGY2QF84>7cDmYLb4GE-C5q2jl)tRtMEUbvRK#CXz$-U0F2M zzyS%OVnQWtyIey%X^s$I%^-nvJp@_>lmftEuB8K<$CRteZh$2G7!Ezj6q|rZP$7Xg zU3*XkO^xG_QRGn0wQN$QS-McTTx>w*kOtgEqV%TPtIRIpl0HkFC89!tBm|YGkTgU7 zFU&WaOf5VrVB6ya01udzN`o-OF01rTkiK`5PRyJhwNTUrw@e_oyYC7NBjt-afc5Iv zW_u7yc8DkgiUO@G{i6k2juyi#JfJF6ftzl> zS3k@mr{o<@mSLh%BJh!_)#80-&xT{B)+ht{Q6NRlpYbrjim_3OrgmZy@y!4S=2-uX z1VsN$ezrmYX9D_-07{8<5(cY@Piv1bM7;~Ie6di?j2}VnujQ{YZZ6Ju)34)`VsmKe zT{l`;?(3{BemAeu+<~#X`%5L4XK`p)Z-w7Aeh=)@S?Xcp{CPPS7m)s^T@1pD*q!sQ z{q5fMP#c3D0bUQX8aZ8tAwPT65A`KVYavA{klfNzW6+XeVAY9|VQ7My{ON2xG(FOtiL zmxrUTAFy#pJGBp5uk0l@+M9Fr`}QH-&Bx`=85qVN1?b#IfFQ<$EopIM*z!XuOC4k% z#1~t-gxuSMttUJz^Y!H&2;(?G{MqE*!?_V)7P{)xLdHg^Zi>F2{+NkLV9YW&*pq=(Fp z-T{k1j}@VYEIuzc3T8yPo znmc0;Gat#o41mBB+0#!?dLZ4h^!ys|WsitHa-YE*4zy@}e9+*ON&yBpa|fJzj;`el zfRLN5eg7P*F~>y>?;U?xx9OZPWrZ_f2zxhe16>-$8=`GS@l&1IPeAH;|79?-yXd?Ct3UND*L2 zab)5J@a146Y(nu=#QEF;Xn}ViWNL6i91KuN#47sNJ>fqHKaEkbi**?%!^^2yt@w-H zI3*^fUa`pL7Pr)AKFt;Ea)tl&#*FVfyHqe9ywo@`VbS%k5bJLzsCuycCI3wMYpP_p zIREyGYP)Dk52>d1PMZ-}?ZYS*6tY0T*4&@YH!VVs&V!<61^yzvc|CiB)H|2wfVha> zsL~7x8d1)XBo+aZ{U`gW!IJ_?{grEO9y|qn7~)AoKsmiO%3WQpzQcdhkpkH32q1d@@f1J zz9&2xCSdABOv{o25=_I4E$#e$el-H$kFI1NukzvQ3-V__OZFe-b!93{765N23vxRZ>eVXGI?a6>a&m54W^xC(w1qzbUlZhSK$BWGy9 z?;)|Bn?j`MBnIbLXHBmj^kOJ(_DV;?oDz3WHgo8etjVIR>!u_tJps!?Evt#BHXewz z2NIUWp0#}}N30K)kR|(KTY5ycsspW&MIlIIe)RXxpsT+oq)L53&3F>;B&wM^8!E}r zHzr#&674h+0K6hTW2XO7f%6VAAQ8q%6m#)IT-rRr#4wQtA%_mUlcS}LDS1bg9k}j? z95zSwi{zH!u#q8E9mT(R2nU#G_D!|ThlWDhOc=L{?f=tnLJV*)9G zILsB8mVgXL-l*ATZY zQ}&sHO?hYS5H3-xyN&S9E^z1E@f-NxONKn$n5ZM6`ECN-&7z2F06m zsiCSEcN`r_s$a$BXzn&0aNgGD@gwOh{&F(6kD2PT8GP(b4hkBf5=d49eWfF>b(9lp zP5E|k*H^(Ar-M{ET61O=MsNESz`6_-xh+s-zUK8UWH>_qowcg@Q6!iJnC5!{gW`~- z)mh~0Wu_Wi{7YL7g}6n3YiT04u8vus05PMk+}263*Aa1$fJs9gKn&1{NCf7xj7~ze zks?H9YQ0Fh(8)voy5Il)q?<(fa1bI;{~4r;DT$Y_3-E zp!2}jm)lMI#)}DiHyQQ{0xfBNFFp}WVjHMvY&9yNX?-8y9T^~c!%!=-yTmBuk#&5> z6LZi28wnZ=ZHc7{q!1sJ&xC?q?o1F-CA1p}$HB;P7a*R83?hbPtBMmXjfadlvIVp| z&F;3+w1iv>59yKZ7sdTS{i9E4vZ|Di8%+;BZ-V1(!S8!b#MtPr=DEvMqmQgxfLwtwOF3|wO-OMZchB)-kuxLDnCvgR`uxDPDJa>L$9kEm)Sby^} z-WP?JoJ^bq_xR08jAV}4UEyk>OouBRH&BOpYk|llHV9_0KK;2}y|^YbIQl(UQ&-99 z>q>{S8=Woda)8gWORE(s`KmyX->7H|--C+o-AK1TEhob!=Mq!Yl=%rEm?pM*#xyY- z>3@bnKa1e24)zqLEE+a1{Ji`swysVnE2CiCS2m>)z?}iu>Lwn~Fz<)o^-az$<@Ued z|6CKlMfe47?x0+2_o{qQppgN+jers{IwL{@G<%G-vres);XSL`QcylPM2`XxH^;HU zxsrc5b`|`;%JY%iX1hP#k#Onng96O}hdX7msq%r>V6AbSt^QdZwE0M{Fq3M$f*QN| z@{2KN8id+vT1UnV(Tc+FjGKZJ#;S`pk$kMd2Y-Ih7LXjZGY}AmPI`S9;}JDz~p zcs5RXfKs~xnz{f-XjS0TfLd_ycgGx(4vQ3?i33ua_96LDl~$}Ue3^8sG>a#eU|#IP z>b=?H3=M2-@l)uP@btwYYKvv=ipBc<)te^nG%!#Uo&aD(y;aW z4t>{(7!-hN{SGm3{JQS2d3?9vA4j17a2L;B?W=-hcyJ|vta?ab3=R3+{XIKm76}N* zgyX$njvvjqCn26Bv_3jhcziVrDCh9Ph8PE|wyuA~V0=(?_Soj+S^B;rdOOOTy79l{ zt#|O)i?qr|iVO_Yx_(SMh5E+`@5Vw$*x?-#ch6*HaO0Gsz(GVo)Wp7r;^aY1-N&m* z4IEM>9_)mCC%kAg^e|E9_CW@PhtCmQEZ-}Iu%iUi`~PGa7asrncCZ`4BPiHy0PCr! z3+3j9EoL-4ZQw!rkPza0N)hy6KTCq2_!CV$&v3}2 z?oW?G5TyuB+93#m=!WkBNOL<7O@y`4#TT4xOQRH6Dg(y-GY#^_8b1G4I^GYor}C3n z0hlMZWhbzke=T*A`q(VJV`%yF!~3FPU~-E^I;eq{J3q8mc8ja5f6WnROa&@qEWcBl zoBp)1g*N|=ImBg^@^uM1u%Y76G4~=1G9T}k91i#%pCe0q03vhb9q z{wuLAA3pOR)S|B4GuIiEv(;zys%7Dc`QzF3iejK8>=FBK2fHA~C_zfQTKn8GR11#= zh|(QaqlgH#&Z&Q)j-3MV;X8}`j3uK*bXVA_%lt;D#T*AKD`H$jeWb~fkRgb2jw!`u zLvjWKd$WJ02=5m-zKVqQ^(hL%i3lmgAC>m}OoXxulO-S1(tK{J^o zhY|9>qE^vUX2|{-_#D>&Wa_-ZDm_^c;WgK(u|J_!`D4(TgCEi zIX$};_nPiTJ?Y8WGCu{nMPKwIPjo-4#GwUimN!7ox^$lwD`a%P=o~GrK!1RA*@25b zb0@WtAtF;Zm=bKV5;NWj+nsrc_QmvVvOVXZm7DM9?T0MAZo&;8%bfB%;H>@cA#*&|)*!o*3xn4pW=_U`&+R=G9KC#N z-me^7Uo1F(^g%@{KiZC;>%BH1LzvOigYQtClsEW&F!*-A>9XE|# zc^)a_$OD<45K63Q3j20&$w0nLbW_u#I6Is{tLJo80%0_dk`L5jw>@T@T(jkboR~(0 zJGv6xFDk@&L_*=SAiPT1(lk`|#v)Lopkj|S9rD~bjTw;{kn<>HU4X|#6~6)H_4()n zP%?MHp9DXCFa-#vT4G4^^w)EWH?A#47oLK+8w-Su6p&xF(~E-r_&55fPYDn&;>}s9 zvTwCIi-s(`pnWQEvlPJMs9{xXgpTd1*Zt*xeg1`NOC#VD$Xp?G$UNi0lnLub+YLGn z&BxlVtG2@RH#ip3f3wpXYedC7aO2~!Mvj=tVFN`71YtN~CMkr(nW3+|fwORJ^uQ)K zx(hpU`%&}?#kNO@gPP*oV)RKO3cra_`7}znic0QH30Sy|La*!x@Q(e(F z4>NQJ^f=an_Yi;=bf>(R0Y$}~EE^z}PDv)(x1zy7z8P5Y?X{kQGL1t+J~vfaf~U`$ z4h17Qn}TBL35D0iLy4lH-Psf=T};$;@Tg>R{f`bPpoT;Cwj5IoKiZ1D5K=`rKK`pu zXTd#RW~(Vofo`2tR}smKj*yF}kM98iihJ)0ZeX#xtPp*LMP1NFVurg;gc@{yvm-r@ z*-W0g9v9AwD6^Rv>nO#chlb}>5Z0*0#lyC2A5)97VrhE6nVGGNq74zndoL+UjHVNo z+^AfU?@I%ylUHk zNXIuuQ)C(_>9gw^U=XaN*tmbKJPFR+iwT5FNHt%n*2>xQj6~G%Yiem8#xn>->t9_F8CHdG#B+mz1(B(XH37oWrlANEl z9iq;OzBD1b$dh{xLZv*O%GjmA?h!AGX|YG+BOWYRh>bH+NSe^ljQ66cqwnIARrJQt z=(LzjUdQw>j%UOeZBzo0oCajc@Kkh^&l(O4KJw1TsM@`-p6rAyiJJN+P%?xx{Eh%Q zc4DB2VtMqaA)aZ_>Zh~Mb2^nCI-ViTAvx<4*a{Wcrg)4sZi?8MSD0AzOL?^3T|Q# zj7J$9*OmqH7bL_P>0K4SyJsO?7rmOS1CnM$7MuGux1j<@X=k3e!J_(6>s?(us}Ie> zgsJ`jP?n*<$y%lCR|Fh%OL@9H5}oD1IaA7#RFeb^*M_(}^^Gd+BsE<6UD#TIw1%<^ zu66wq&0PJBrhF^;)HIZU!cZiPosbV~lPdFgD$h{OJujWE(Gcyd$zr)v5ZXWE?XcO- zk{Pv$X2I#Gq@)u`j5}t1r%wSgRpk#6DDxyRVJlp8>&40MGG9X!1^S9yYxY8@#n0l< zSji@YpPWiAO+hlwy5#HX5%xzU@SmQUT^CG0KC+Z;Cw=)T7iy_&dXt#SeTVP24O_x^MIoLhnMVEk00Tm4m zBSUco-Ex3oJfu#2=&39@ljC-=iDG(up^>3-8@IL*I{!vn`8sP;8G4r0ygN!Av?4+K zJMoB6B4yk$`UQ`yaod89d2o*Qd6}Ia{~p!AhA!*^jRge}6}v5~)yD2b$;0bc$@x6LI6Dgw`xHY=mmA~5 zaA1&65U}07{*4EDH25y_Pq;DP=LFEawT$N{kTVFi4IcyswafMxrMeQ!I#aE=HXu1^qoGLbI1~#1%ONox{ zE;0pTcPsNvW$nfp2i6J_^N9?sDrT{O(`00^Kw2k7!bwcyV@{R$KV=cdf;{N@3cjng zLAIg=H6Z$juwAJ3O7MT=XH710^_8iOR3@K#Aug6;bLwJ){hE@q(^1(0XtHFdMFCtQ zA$`E4U}BNS$Iwf8z#-#N>?qfC&1>0+`CZ<&V^i4+p-mu$96ohNT=+ULE`+{vg^(&8 z&#f#7b`&^+;s5?1n_qdCE~S7WBW6CJq)iM|buw9p2#BUFPk=@9A!JV=H^rn^uk#&E zNL#E~Due{!DA+{E;(9@l_w33Re z!8BGCfVeqM`$}||bc?Y+9)Qbzq=k)WnJ39XQaF}Hc7>%@6~B)lfJZrcqzw;O%WQtv zM=zZ~uxH_`uSoT1t879{SPs$neRQO0MW&uT=+i9TT7}!p_*Wf{1g$>0J=xlAe73@U$7EZi=*jsAKG=PgO zjHx1}?=s5yyREfSeX!mJz!BKDHCvH26H+FX*TmHXK3|%OLoeynE?Go3t7h-7tM3Cd zZu~6C{5GqUaY^4&+u9XUQys3m5oR^ce`V@ZoAD*wTN^vL<6|Gulij2;OQX>MPrWK2 z#&J9n9~!b3S>JZH~F>;Jl z1&!kXTAeomF1ezHsVx=2Dp5c(TlWBUCj>9(4%!()hMh%WPvkQ!1zI4udM`-3&2TzQ z1BmM@rSy7d?k)hP-v|ilOyy0|9l7$6K z1=Ol7ZI&Qg$UbV;o0GGz()1ULj`?|f>obb2vR*uOqiUq@OPlR-APph2%4+gG1M1=3 zX5~M^UZTOWNwkc|LDvB6BfIB*rai$0cIdGNJI_;WbgKGVulw6Oa*Q8hi4Z2xtVYCZ z>cso$+@b((ayulNEHCFQg4_Do7)7F%ovDB>)y>UpMl!iK@N?(yh@$9lzWppH>r(ZO=1#mXYACJm~W}3F`vUGlLZs+H2KT)6K zYtw_?m8fP^L7!ce@y9ewoknH}1p8w@DJ0K-U)*+Q)A0cK0WyAN>CU#pK6skgNcPC2 zT|(jcA7*LFW&6yVv&*7vg#G+I8a5I0BeTD>=WhmJy@J$XeNc-8r#tJ&mZ%IKly<14 zZKjd33yonUtx`ME@ZOUwMqIBM9kQ|q`OfD4E^X{M8;_py`F-ioj2=w$ybphWc~Bs2 z8?Wy{?`$o3hiE6>MF}iMn~3Z~r3b9TRm7Y`p6d;s`pv$*x0HS}VzBb9U5t9t(NP$8 z)$WSnAs(l`cvyggNo^CDzuM@(d&P7#OViU0m=4X~=jFwn*PxlsXFgKr+N$w&Y`olV z-aiJvy}X+m;TSBueqL{uzxKaR&u7K5AA0LwZ)eWAbXH*_)Okt?o0A-ooG9*gtO zeLcCiu^*hw;>~B-&hT^X!SC`E3|`LDn*v`!+wA-pIXx@-UpBvbx;y%Yvj5z2gqXKs zUtzCud%axm?nX|SSJi~Qa#yTMC7J0t4G?o#Xm|CQoVkL&Zq&#+tqY4}&eJ8K@_$o4 zm`>js2RYb^4T@HBYc-BtTVq<*Gq-rfa5n0SmRwUsmR~kkx%S5pm~R+h4`ZRZwv?7> z17dvHop-t`x;LG7d{$j8RlOH}+AkmfElcB}>v7DnSrXfD-~PPci8pbghu&`%oGWUj z@Lv|8Pq)1H*^|ga_OL zsUq}evh{WDYLsEPND~a0tr-r1Ytcf7Q+#V)>a$sWT%hKp;_Jg6W8<+hosZ^yYI zmK8t7_dGd%%(ZPX>fPrlLljO62XF$VGwSS`-$owjF^-F!MS`qEy}($^w!v3#cp_ijZ_-hOo%#Z zpi`fyF2hoR;=RK6FI-4BS!WFy^&F~tEbW>>V9Wq<@4@c*V_jsiTNU7^+UtkNr_$P( z#F-qc!H*tJ*Ac+p9A!7A!2wR}0qry&Q9+EGaCY#!J?{q21EhKb%~6m*%}P%2JvMh@ zu%u%EH-+I1G+~c)1u1Q4o?>sM{J`j99d~bH8xNg)@RB&aI$uXk%b2m zl>s}x4s#e&AThUg-?ti?^cEKCl5YGygjUKI;_*Nw@vFrpwt?9AZ7xE~7k@&BqH<+h zS1($&f{^UOmfxl#JkKn>>0QeI0NWcrJN_3L1VWxii)A8^aYiWMAG%cL1%kv?cJCQp{(v6Y<5+BUg;4 ztZ+}3i_3tV&nx*tFMc0XEP`QB;LLU(vt6cE{Lod1Ual3P-h%!T4x^n8huV!ic&7H~ z3C?SZcJ_Klid9*F6e3S--F8jP7P6EM!CD!G!>Mhach#SH_4X21>&~GkhBY*{<)r^F z%HBD+vZzh_PP$`t+;PXYosMnWwylos6Wg|J+eyc^t?xX~%)H+_GtW%bd#d(-Yt^c~ zchz;Sb?G<2f*x;Jkd5UM=1>9%ZVr_Q+; z(wvmS2oB5Sh51rO$?2wqc6srP=<1rafYuO_cI?G7ksmwOea;_WVVSUYtGDk1$^YoO zD1Qe>_FxU#D!PP-s5YxA;1_n4@fwgKb}orqos=0Njk1eT)7+SJVEifHLY6v9Tp@67 z@Uap~g7m4omm|0ltgpz$c_+NG3Gj0j)$_S||pg9whPcGaTGu|L?s%co47Hp1g$MAh6)`2*3S-s|@Y-~8{ z-pDc_ZmFEe=>r#B*JvRBYOT_&FyhVTW$Qs%ocS?{5xz`=i;h z{j6?3z_*YnR@*(>{2(T7+zYSia$s=a2R0$14=zJ&f4ri7l2~<^TQj=N_}yiKG+Vd@ zH6EXfnE+(gJ3~_je-ukkbp)&yqH8sG)(|kHkG!Ioh~r3-mAr@&qF9Od6X}D)0$!q- znyWe&Q#V?y>ab|4-}-1KZTg2AXCA*K6x%vCFVj3#RVx#%tZ4Y$B@7+yt16jxr16T} zv_1DavM|3@yDO8&ljS{iXn{1FOlY7kZylR*PTLO)o1Xq{Idk$jgl}Fz_c?-aVY%51 zo&1#fTbBr-c${*O%@f`Z0mNVqj7J9J9s&Z9TM5 z(#^A&K~S|=g~_VT(oviaMrxOqWA?42(Js|C>o6(|R1oR=+L0qsfQ4ylLR;d!;O*qp zWIbo|r1N0nI(3am&~|KG6U?~W(4y{6G4HnUU8`bcEea?}M-Bc7I+ku7P&p8Qw=ZLu zxK{oPJ>G!(Y)?PS9_Glz%TS;D?tp`&TaDeQ-6{d1UZ;a7JuhwQc@uF)+9v*^*Ca>W z;ua7t%m-I&oGxQs7Pr>t^s+93X+b@u##1ToNlg`LYf6BNN^=Y^N#x}}J z6#y9m*nnKFCQ2}h5g6(&jR|;Eb-qo()i3*oU9u=v>VYArnq{%@j$xbNY)Lde2*FNqsB=~G}vF$My&CLiaO(l9BK=`t%bk@fROpYBWKv8 z2iem@K4r)4J&Y~q?2+iEJnHZm_<|==)j6@g*|NL8+8iw1ji2w+-^e$J)I%flwzY8q zD&U-c-pzzEUp@ir_EB7<$-PY#y1Cx*sd=sl-eFIF3*Poi?pq5fMY|ACZC7h zUR1^aK|~?s|ftNEQJTDArzT+l$>Z(+6$(X(O{eE4THY){z`w0>~I5zMeVN+{cA& zZsbpR5wA#n-bv}5(ESf7_W=>uTDiO=^I%6{{aH3nu_aU z=s?`6eK>byrt*HzlGLIADK@0gOjWIRlNcavH{_FWs=liHTZ{FoYzF<&VisE{5e6ij=n}gi!qeJa=T1=5T9uK2Fwkt#W z$txLUT&rMQdK;-EE~!4U`ke+Q&OFtPnXaI~OXfxa74{@WESOsNT< zpP@n!*X;p0e9WurN|>NGE0%nmTjd)T#ps>|2@?&oW=6RZU}08L98!_Yeul*anL^=M z5%b2{Tl`6a?oPrHu}zM_@}>v1Sh>$P1<)X#~La448oY>uhjLBmemF;8A`^srAO585XU7kMGs3{rO|kP>TtQZHYxy!JM# z*-D&OjTQdpn=JopK*C%MvwJ%GXik8{E$n^T#)etk+2*A38B8d5<4s zn;9nyp=zpchwK$(my5kfuPGvP=kX5+E4Z~+)lmID zow*Y;FCJ(Lz(VGevgHMtU=%gJ;1CLe$9QiQY*vAn+c@b`s|ucrmpdQZm#=A|tWH5Wbg(By?$G z*U)>jz+)vjq2EK!1Pj2sN`#$u9cOQTY7FQOevADkC4rf7sUqrAWr7f}noM4KcdQu49(f>q}j;#J|cX zB3rMX@b)t{5#7_EGcnNwf0+`rtR^3yrzWnN0M7TCkk|GjcA1BXUiC=vhsOs>kMz?= z3tJS;be_(K-Tgy+CT;N)HYemnig~f$Bd@?{U^%`X^hzII zTbA3qyG{9ZsywLTlnF0B&VRM)eiZ5yR{Pxe^18*GBhgxkuc)StZ~!W(0aqS>6d~l8 zsUXy?$}B~1`7}(R5iak1YD)wQwtykA7&A4^wE>Byw^1roK4WNni>KW#7xwA0nM~Bq z_5}9E02alu51w5T(sI`p*0;Z@RJBvYVV!7e@L`$~V-}qnvp$SCzW)HZ#OjZ$^+=-`8(6B|{LCuX<{^d{!mcU7ePn&A zSrUeSdOR(j46>Qc>pP zz%Q}m?Mg<8N#Mb#ak_=rS3^>>at+KEmNLBK7{|j1*T0Dc55wj}c&femV*UHx3Q>D~ zi2sGWwt&|cuN;F^z<+0N^1{?;|JCtH(eJJ*M)d-`X;Mdt@Gi+y_`_BYoT z)zwn*&mBU_8#G+W-yt#YaC|$donf`lGwX(o*&)M^*Q49G`q!7#iEX|0`6hL?&Nz#8 zvh+(BgE4|rdQ_Pr{sDB58Gw?rw`9R;zy*#ot}i@SzJAROew?FxVVlbiM?@p0;}+^k zNjt;cvTd6CU;du~O$#^PTREYg+s)x4)N~4cMUpHE8n!`RSF^bf>Y4>pesdR`*$o;R zR}J}|E*jUNJ`J&E)$we%;$n}7!hhE8SF?f9fPsg+x|WJGF`K-YRCkO`d7*cUuO_Zp zDJQ}mK13C}+OC1fzHyOO%;!r6cG@IBSz;*yv(Q=ho3SdvT%%OpWrxN9V+3K z>$Ye7auGWxpAmBx4frf+tu_E<2BUWh)iU++IP+eH5-mwfl*{Cq53j-|ERrjFRS^Pw zj(<{V9S7Z&`PLr`ThN#~lUNIjJ_@Ul>`@?}47|IVK(}hA{5}C1G1p$B1^`whn~>= z(j9K}L;u$MFSR?e@~kw5*C6O3&x#9IQ5!rv%f= zf3Qg^RtCg=7{&yh&kt_lKjg}H zp#4}qfqy>JLB)RANpF7Y^Gl*!(b3K2N>L%IVPcZk$A*bTcpRFsHK3|7EIfeuCPVN9 z7TBl-W0mR_uf!LyKG9dFXq;RusJfksbtc}H*l-~Bs`5Jis`@Fx%5(<#rXWEb2c(k( zK)$~IlTH%`Hbt8M8@M?OC+i1(-b5a2tNDz`$@Cq>df0q`pt$ADwXnXFW{+ekq;HaEu{o zqC8+bIJryZ-8HY4d)+JFgCQ1kW@EExQmsv}lFXNQ*J6=fPj??`XA@LS?Q!=@pC9MV z9P@Zp>mBw**weWqkL*0J!0>!Ar+M6+S2!OmHuigNBXW_n+S;wq-b*Cg7Hh<9{0E_A z?L;dh{i-fE!OC68$LaXl&C$ba>usj>Sc|?A?m){bJnff`o^2gg)bE_1l_7UCZ9HHO zH)BhcLt060zh#MPC4OGWX^0;~B3yjdJ}pmm6XJ-zp~Lt23cY=?ypYl+rg>b%{U~ip z6ex!4*ECB#gxB(%HC?fp=HPU(m5I6Xp-1^0qP|2ztl-r+y4pV zq}iP}-ue%f{BIzq-zc!~n9%cPyb;a^xmE$OpG2Z=EG@D$cW%UMw_-s%sj=8NhgO;fW4^x|q#~jeHKDD6MIlZ{ zK^3Sjo{S}(=aC!5%mR0xhg7Dp7!GEv2Z?jZ3hrmoX_XZe*OHY`Vwp(+Dm3QYq&;4S z1kXgPOksJ-5>zl=P~UR?4}cT0TN&X$0ZwTGw%7=H4F3Q)CD%Em*Z=Z#E?p|y)4OAJ z0E(n05yInAVdK{)flX@+hLF-bmg?gQ3kKFa9$opY# z=O8z>jMaQ$naQYQ?sD-g`J;I&3z}JB;~0yAsrpx%?Txt6`wgKU!* zMT0@E>s;^xpnDFU+va0i!)jCFZ|SMPKLAeSK!6iC5a5*0crLh+0|Ypk=K}#wF+hOR z`M&@-Ndf^*bN>!-+7USqIw2A^yzLWxrGXNqed(SyFYuEll3eu%_vy1^;=_}%ySE82kL7Li!-6y)Y1tzujXBf-hD)`V{+xfO z%@Pg!@lyl@A;1nNU^x3lpA&@6Xn$+(_vk>nOe&n&Cayu~sw9@k-7xzzx41d7v?y<2 zGjGS8O|g$;@Jz5GT}mtSt;we8mWFW84%Cam84-_^7dm5cNVh(g5CJ4pWFPa;tZ;?B z2fYsz@)ijl07l=5~R{A&iAed?3HtL@M zC!~J|I3)oAPG{--rRcwKMJrqX9pLnLEauAMDyUbbOyAQx=rl(&s%L^)D9W6?)`^}i z*awZvAG7?t3V%ECw#JVh5Y&?xMkYSVgiC15zHyS+z$QL+Ba$4q8bOXs*cN?UCnaivAV_N|~QF=w;wzN?Vi~D!9=UPe) zx+UasX0i^*BbfscTh?==TdFT$`+D+~=A#>Y0Q-DvfkaZZ^<}KGkN4*qWq~@0TH=!)-F1{Dee2?^S?2j2E5*^<-kEeWZ?b>aa7TF z_;2EN+r9~=dSR{r zmb#Vknsx265;~P}r!1{s!aP(v`;uDKoYszLq5t%aa5~nYEgKKajv6`zz$*yce-tbt8t<<`J%eE zyOge8G%=T}#PDpTC}5_RGLq3LH{M7)G7_oyJy_teX;(0KDSWTO-EiEa98NMT*~3{Q zYB%FBolsQGyi*~nvRt5DEd)JGn3s;$PQrSSFJe+-ojH&8= ztzPj%RI7YKA?KG#-6lt%3P+DxOLf^cj#L=1@RZ+3Yc+FcF)KKr4#yMzhyQ&$81Ds1 zx_^7~%G0~eiKv1O*W-Fm-|i<0wSX%!p8`F;>#dmYb3&KkX7>C{1R;!o-^<>~$P@kp zS?8?wR<>83rkl*46p_!B7*K3TRwMXBPo(~+&KkCXxy}bspZ8-Bi|t{QAzUzmR%Yk^ zm8*@Yzp+KGJItZn1v8M>1KDr_12;pP#FvD$M*ACv{IfH-QS2B%AGv_&09b%6ipl*l z$C#(bc;JDuK1 zmoh*AK(K({8+z%D;STvb6XT`{p-+Fv=x(@!qK4rn(*YC0_Hl2e*LT)FVu@dR)k>7J zlS67M8aDrtn|-#VK`d(kDgjDnEG4tP_-0dN!d3~;uusUe=+S*5TpvkSZG6fDp~8ID z(cN*HsSN6wmsO*V608l}(r&>Wl8MdOPFx~_Lw!X=PsRxfzpaTjb zGjq|k{cR+qN^=)Usn8HDK)qr!Pc+hXm%DFd8&X%de@~E*N*=9VA_BU6CX_yf-o`dd zyvnnU+N%oh`iQd4Sm}&ey3i+U3E=kp>QbN;T9Zm&?G_$w)PT-e9Laes?zLVIjm=B%>-s_K$EwXQ!NoLitRm!!Qz72`Inj!9WykHH= zFNnCPcoXr_bRlIg`5Cs zu)KBK%OvxCjn_ms@`4&zQQwREo|h_K zf!3DJg=0H5QDkG04JF$~-Du-h=eK^XmFinlmW?pc1;zr!tu(<)h@z(~`5+MGKVIY9 ztoapVNv)#QQG1n!@~xh(nupudW%cN_<)C8k1XaBzA#nF{?>Y{;mRT;<~CHYr&Rm0ffU-(r`+fxxlAB1j$#4h4ENm_3U zS!G;EDLYu!y3B%;bptv#*~sK7>$zj{ug3pD01&D-_L}kc?|A;MnKFsL!frN^(YV#mqZmlP2VWWKo7SYLax8a4t(v5?kae zh}i2TqDv3CTP+4@l+r@9H&1{xTF38efaHLOyd@cE!ZV>tcD88p;e$oQib>Htg zQ+A4Um@)Q_H(ycs+#P^B`vgCGQGFrW$-m?`kWVOVd8^*cu!cV<;6QPnd&vcGY)`?( zf7ufdU4cS|4__Mf_4*xd1_1vu=I}Fkgg-afbM4tNJrFlNMy5J5-K^>5u%)zoPiJN_ z+g!6AVEp^xR%<5X@P_eVIf^2#@NfG4M&bJK!|a@TSR`DgVtmdy_Cq(mz)R;5LvO7GNeOw3JeU{)GXp4EN zvF+f2wG;oKj!H&CfKJjDk4?$M(AJn(NRgc=%mt&IXr4@;0kNYthpcczg^4Ky+UV79 zAomZBxnrhl4$riMZkd_gH&VrEl@_a0#o+eT4uh8~;@qdHe@6tWG0SCD#wE23-{I&O zxFWP8(LJ$G-X~Wnlv-z}Z!4(KnCoQL5~!$K_-E!df8fEevREV z2fvL~)1KbCOyJ1BtP*#UzrRM&OH4#`PR7+xRnk}v<1I)OEkT&EMa2bqvp2DgxZt+d zBvz?Ma}H)X-R5=EOy8v8TE@y13k4x4heR57_^*#E-DQSd&}x2H-n}aGw)vbjbc;A7 z=cQA=EPK3f+nZl{bPU4K4mqEK>~*O#oZ`A+IOu!^9xd2Sp&3Z#sm=WL23NEJ_CYX7 zz&P4%p>DFMZ*$+c%;kR7c>%5Is^iG?^208yf*aF5a&`GKL{bMBoHE-nb?3C)|M zQ`;CWt^xt-^9fa@P5e7=d|K7GoZOpU_zO2TAzwn5hl$a{fRLf+tL~O=`77K1ENDW) z@)}#ffGP!S5D>zDC1@7b#&iIYFe~wGcYU{g>kLyI9V0`_hVEd+py=q~YMF?0`s=T+=yYju z{F~AyjYHi#dM7u>%UeV;S#j}#u1B_2(&p*{yx<%%W+5TUiNwSO5icjQIdQ#IS&ESe zY+U#%&qkq6MudC%A0;RS&=**`P891gH1``G62eKl-;)lqLyTQSF?4P;AjXs< z%Q}?!ykvCaiF7>pb6PLsVgs$o^+Ugd35lq5p)6#=Q6>Q@Oh0v?xG_<#0O<{Y7Xcba z7ed*>X>x0*mmP;Gm&EnlNTb|<80=}Fuo*+}t*ilwY_#7$sTv$d9ni!{T87#2aiEUHkM zORwV39M#wUzk_l$>I1sMkK#YZbWZN2YtJSZB+Qbf;0Gu}28R%)gl}Va4X8BTNIEUL& z$i~irAyay_*`nAZ6QW@ZddP_q+-^VAY3X&|1!UIT8)D0;UOM%(sP;2Bn=jzXZfsh2 za}~{AxG`t2)9)bne0Q~D3C24b!j!T;9>n6fy74Dn-tfsz0>bGsWsC1w!32XGK*AU)oiF}o&7nS_gL)O{t;jq%43RM~N%1_vDfVK4j4O#!fnZXg z>x48c)Of_Dq=D|l$tKd2%pj|N&^4)oS&?(*r_HHIP4-W$Svb>uJYL|PZMr<{G0CuO zM5l`T!xZ#9VcKiIT@@%8NT7PUKzW6760raKB@IK;@J0pWQCWe)D!RKgScn~U%{^mhpbt>lUU#fqtFe~6QT~`V;oT^gpPtY&+}QG zB_9MQ?V0rtOLxnS*^gRLD1Y>t zoNyq#y1U6zog^{P{{8eXq>RzPjg~o8=c2Wm++o2E4-4Gd2R!@T?AGBa5Cr)ZUH!-%s@Rl%xG`9-4{0+ikDm^8KtyRV{)mS#2@GY+SZJ+4U&m1yYX2NeCZNH&M+Gp}=5kSrD-P9mx4=nceVKnRrZ z^vOF#Hi*f*JSfkc?)JvmTkqb;iE@WqCu_ODg8 z*$sRcJ&K8Dwug$lAdPjh3ZQr!yx8Vg=1_#$TuUETWB&_{g=ggevvM zAkmv-{XE!|538CvZTQ!_4PBaxA3nZoT#wDJ7c{ULrnTDlj+jvO9N zI{{Xu6;w4&w`;`GZwhDhLrtk~zb9;!zcVmZlCNobkKHFIXV8p^IufZ*8eYKCVnyJM zty|!-X-?u6Fmf@D-@5CaHX<1JIm@dUeU#YfW8waon6A&on`j0%!dJRgrhEC_rUj+W7bL}tl5nQG%8_df;FUtzv0kYjbI4(Ld zF=WUku4#5H<`G-T@3eY3nn{79wJK9-QxgXI72w}BOni2br=u7Z)R4`Qk{s|bS-6Y4 z_@jInb44LD@c2p}`E4Y3d}g$O3@)pKznvTDo)E53C59=d8;09O;DP79AZj!VL3sOD##aFsz7%Z| z59!P|r{_=3{@493aypNuDe&kUGur>K-~D%cC}*YbWMb=J{m&57Mm61pHC9C5VA)zh z-4?ih=ec51b5h>xgN$z`k#y#GK{UU^tmQ|8b-28qF30M6U0J=wnNt6%zxg)4tt;E; zeys3$yMd#$`YIT-kLzP>^qc_`V9`v#-&g?_To7d9J%}viRjr)YZjl1S&HI#S8nCJU zGc|kR)!BOGYJfX8Fl=CeDZCI@QIi)~D;R*MH;XFjn?oj3T$mLs9ASg(Yb?iBE-4M$ zOB_Y?I|F^CF)>D2pqhyASbfHUkpmHOm43<YsPOfP)D*f zp9t;|5?MQG2p5gOXBzTA0eW;O4WHZxl%(}=-0k!awnB6>dcbYL$9ulcr8g+xGSGZ} zh+GfC{(2uqj3u%|-%-83>Q(m&+Ugv10=xV*-lJXF^Fu71O?Qg>XH4gy(Ifi<`mY@X z;h#QGOtzOnC2aRm(&dwmss*-}5DAd)PM002KYeiHsyykmVh=s}Kp+7!h#m>UsVF_S z3~H}bKQmME4uhIoe$2#jx&GY2fZxMx$-eon@?*+MWJxUZE>s_EpIqwwV7ce*8L=;b zFTKsp?I_Q8YGZl@j%N@D6;Pj z>n8MRxxr(1&Nuv8~59!oqM%1wK-TN#u{FB=!Vq z9sR941c%@wQ0uuVfvhctNmB#wApZUCj;=9=I2Z;gqvZ#w zm$nt1gOqwN*QDNM)zR@=m#SMZt#JY2cO4@J)eSGIf%)^cb^=YZ!rIS^a^!{2m)OvA zPfPbmzCy3m8ZRPck3ZzS1cF47BJwWVsoR(WTJDih5{T$bXc675pkSSSN?YnxsqFU%Ajz*M(&YnEay}_)7%SET(44j`~8VSFo zDuU9oZ zLt2rtw=Z+wuBoI#6_vPhRG0_04#i}L2uGUOdjmLH6z0OJj<0ueo1d{A@6znQXca;S<3YA$8W6JmP^vYPK=L2RZ*GH^k~E(31Hj(wQuQ@SmrJk*IIPZo(U>q zB!*u~&!$9&&FW7_!FUVBpDv(;7UZhebvy85#T=A0IwWh8dx9@5L7k%kNX%}bCX4^| z=1ofVR6JFD=fR3JvXc0#QGa`lt>yImEDUBVUSL#si-Yh8MgOvGf}@`ojFuSluF>95ct6vZLqIW&h8PxM^T7W$IH$?>4hD<}j zWQ@fbd;^CSd{SxS+{P%$kM(#DTY9BLL@gntVxcr^bg~m5KpdTuEChq*k@V-{p{~F) z-p;sHYWZ30_e15l)Mme?&?WNo!w$}j@20Lv>W2DVKnWpybCEAo4VT*d!BufFUNgl1?4U9^Tg;6fJdh5gzM!wLY zc!#{Szj%y4)O<7sONz!PBWDzh-1x=+#D<|o4_#n04Q6RC2UK>^Yg$CjA}G@^@5I&g zfb;-4rNX)A2?CnSQp1=h36=51V>=e+mZ+P;A4!YRF_YikKo)D?BP$Oa(G4SwU2J}o zqIMz|_BjmU=6Qs9=ja+hY z=R4#ZRNrckd}Q5i>R4#59&rl#XrQ8h>d|@V2F&Vb^a+e`UpiCHu`~gbry+#1T^lu( zJKim^%Z;$Xs){i4Y>&|DmH62y0-z0+v^&`?-R_&4c3fb6osmdX3Jg&BLqq3z-?V)8 zB=eC)aa5M5%Y5JJKnGHMxm8x{`x|NRE`2E!*=B9*MVRM97fstig+ZtC#w5ZS)opxk z$zd>w$8!)ElWTLj@b&XQ3OOJki}jfzz}n6K`2lfvAkxB0{50Y+B6N<%4ld?~#*TFV z^LQlScv}ZkIxA;=3py8TMml{*r~hR*&>Y(P97Mg=-5k@M z!Ul4J^6SlcIx;ZOe{#_#ld5)Bs=J$eV|V{T_if$_ z_NVx3#?7F@AKa$x^ZR?-%=&p()0yc2QL<5Vgcfwe1A8;%d-u~z165iRO<`aNQ= zG)Zn$Cyct3mYL)P;_tnLjPS;G4La@}wQ}-tS&84Mq)WguxoHxVH?U<`C-1058l~(f zk>N7uUPlDP$p+|U^T^!^A^VB5>~AGA%I~GGSyM$eN+drx2Qy4oq_YdPN1 zehrYlM&f|%hrS1vTK^c32^P*l-E}gAwcm*RTz)?GxqtiIx5O6Ken|iw?Zk@i3DR_B zzM;E(y@ay45^3(Q4I$Oa+xF*c!OF$E8p4*sS%@&*-q`ydSq&_|CFU|eA$ViNCD}1_ zd~n|KY0GYVtaRUBU+0G`wf=g`QVFiozSsULf=|ATdK*>L5=<1tL(XkN>eBLb664f< zcV)N<`R;INz@8F$T^rREO-ge2)Aziw7x%>wW_;1iP0&U`FV3`N0RO0G-hur1;V(Wk z&sJ2Y062;ULjh ztC~&~lcz$&9ba|`J#Tt4Ko=pcdwTv7ddXT}j~sS*TJ(-3n7Cpf-Bmo2r$4IKYnI19 z5^q`)4E-g*xO)fAxxw8F4Q>l6i=?SSB|x%If5=Q+E#vl)nXU_c#=TIxA3O8r5?!o4Q-am8 zUgr_{O_AD4F^!E$5~ACwc9rH?GgciPSk`N>h;Kzr&_&|NwfGRY(|8kc;hm&RlS(4h zkoI`OVj+ob%jH=WcI6H5)6I}M=zq`;2_&x0I~EK3u&>Uv1xe`Gr$a zb?uCsDx()ES4Tpn`3^)+J>(+{-7tha@sy|tjQ?e${FrAkEi8nX{IR0J zvUHpUXp5jEhcRXIzAv_7K@;}fyf3NZEtx(-tS6gMRwZ-!vpNxhp{#}}W_H0AV>?m) zu&7_WM55Z+kKi~+vRu@R;8;K+3Mw3O($9x>4ilR?aXBR1yM$6&n3`gPD}=lGC+&=7q{Q%Pis9Dxw^Kj83hOE*hi0`$;SO`Xc-i9ey4g`4J&R-REJH#V?&_!nrR zQ)xawj+$D{o%Jp26>Om`@qT0N1gm$jDffginra^YwcsG|4N!q@p_i5Buw%k$GGTMn#^{Dcszfq|p4Cr^AIa|T+Hdmf z&+9OVN8Chmn&;J_jK{`C{Wd(95MiEe_PV}%MwZ{^0S(1Tdmm9cvwVIhoq00kI!)ob zk3WCA?C21DC&+QCb?%as>6H%)WJy{o?$!k-U!63;qJ50{|c!0Sdr$gk_LKMy- zh#CTY_=vGF;u3l`+Ifoa6K}-76OI*6dR_V6TY%SN(^Ny%bZUeawpND)AG$p1YNBfV zVNb?jy{!hZ^8}rTPIUy4hlukVFn3#4%cpGK0dEYBMoVr;p2G>&hM|PPM0!U}%aPG* zx9!ZrTWWhKR`bazu_ehVWTjAKd-y>#`8NF8;Y;20gWGxL2R0rT+MYy;;{4%Fub(Zy zS6hICqA$zbR6A}1y0sF3l)5Z2lxBa9NlF{@OI!)BIECb3mA7Ooi|4Jq_0yP6py5@~ zR(sy8ru~Z*79wSao92XPUgd3RNs6jjZQbLCigozxBKO$f9J4A%u7StNY%s@taST~w zl9K$f21C87Xu0Mp$d_F*K80q4P%BN`K5K@`>vrLb?tj?!e{-W-09H0ypdH)>_M!sK z;XhoV;lGiC)PQZLBgj5YzQV(FBN2#!Ysug3n*wS6xI|sV3$vFJC&eGs@(3-J6vRP0 z1HOFPM2Xb9_#b!kdeSaGUpIMn?~{F>=HJ2F2;C)Kya;-s*6n;;9)BGl^#+j4wSv2# z`V*SO)eVYlmb6|pFe?x zm@uJXaBdTO9AJofE`fqNt-o`mCiV?u8I7_9VvPy+K?(bm0$<|)=?9010R99&;WP|s zW-X{#6w!r3hYj&9!~;cXe-b9|2THk%k&`k8$@7wMNjMB7Yn|cW^f?9!ZgUIrjcA|% z48~0FlPQkky^wFL^!pM~o{5v)QfBo>4B`cJWrSfcBSx49w#_F%}s~SkN#y3m^Q0;$_72Nb|(F;{$R-i!eyG^^ZJyHG3{M^I&Ya=kKiWqj*4Z+d(elo!Z-E`rGE}aDP7{;_Z1Jx_lDH z%v*Im4iHrlaAkkpZ~bNC)q?rxiGZiWVV3E==n7+etkG=S-b{LbuK5;_Ul1G$w1I~D zM1Qx~fi}?k{p9u1?)Q{a$oH*&Q55focZugsTrSd;EUuy&Ezf>UhlFntjDp|+@!yMk za&v4CA=HmwY|fQpXB^LY^ZvsGmS@kKB+!*6ZWE}1qyJn|=1t!jNo})_AFq{Cuj%-E z*g8aTgXNtv-Vb*<^MX_t2;-Lg_{}cruvTwu4mVo5kt7MiMkv9xk-M2!$N*Vr^+1Pk z>gXd-e$3E4l(-;P7J6M4VUV%cuRw)Pm((!BAM%-yw-%4lq_u;Nf#}x(;ejSWwCN3ib6nF=G4(^9$t6a{7aV2`!z!DFvjE?q zXz-!)PXGi{;YCtn0{lyWAfw6Cfjo)LF@4Q{m7y{Fnm1g+i%Xvt0sK1>B-Y;I$`|K`^Yl_m6`BI#KQ^sSlWkoYPM&dAhuLlDm>1M}X= z>1@>Eyy3yT#YIbX1p3^+PZEd`EM|%t6Q&-@3)sqSp-?Qh**ZXeVj$3C%i45z_iq@H z8&)iDFqpebz|W_7Z_;0R?`qHqN*UXS&uiv6%^N8g7P{g|*T2o9fl{!@9 z3lAPR&dUETIDBVDRk0KyMin`H9@r#1hMZ&7<9M_@OC?)Au|C0Ko_yGWTe>M?Y2UMm zmt|JLO!kJ%y-`0t*uhVQ?y&C@#r0KXX@k2`|4wbyrX}gMQ5)eHPD&LyZ&e3sdfiiG zRoc{|W>SHZZs=i5fumjy?lnNx#CHB|eW9Xs@HJJvmEOJnvC+RxMO>$N$ocUqNMQrb zbL%R07Ym;-6e_D`K*C%MQFfhY4i?x~^l|t{Kn|OL*3MMz5i*vFEW~4213eg(xz*0$ zUF<1vjZ$V$sL{4|34m-N@|R}JsMql%vu-B)KE2!n6=v6d-w4dXER3hQnTATJre`?^ z+kJGkMS(d|jZp51N28$7l38aT(Yb14bt)>rrO{KSwg_Um>2|~}xg<61LEJ#+1JxF+ zJ~rQ21}dmUY+*U=}9rl_!)8cQ~^rX&XU-&Jl4cIBmi(%3C5 zd#mYZhn%e5-kgrh!w`;it5*AHUm??USgvLO9ghyqi;68XxHyr?$(WCvMr9M zLj$^g2(X*;&(G(6*5Rt1z9QJ}R`zZ?gRD|K2B^I%gYOton^^H`v|VDM_ybHL&`NaE zGV#_O0Wysv!AZ0Lo=`j78>|!m5rT1Cy-7EJpf_nCiBuyt1c5MWJnlgxD-+d&`WARL zp(lud!jSUU6yxAM z32|*4VW>qWB3>%{Olu_CpuZ`{f8j9GKsN+7xa!A?NJ@95vD#?WEEKD8!;uVosX+12 z{vDg5%jZ&yvV{f|6=6L{%6ppI=j9C(vS~S0&DBty9s6e3ZLE+MDCs;x4Ks=(9i4NM zKVm`xWy1+(7FqhpfrogakQ%Ev685!-Sk#Z*q%(^h2_``;tDo}Kt+NoU`Pfo6fkrIr0^XT}7u7gIGdX|2Pfxv~4c|;;<>?$;zSZ#Er{&=qyX@1K4Zj+)g)wT!ol5;) z4H@%K&LrF~<>^i-#JU~Jq|r@`FyH+-fTp1vOM-+HvOR=1AIfeHZd!jn z?fAWMgiLE1?+6RC<6W}-ay_6lFyB}=zS85g|I>@r_ein~^Bx}(T<#n!mxhO%IK}wG zt@Y7FiRr|aMR)pkkzey@BJ(w_=MEQr`V+Y2$e5>-ka475oFTy`&iRaj@94?R7A|;; zkET0~G}Chr(qWKa%3Uyg_Op;zq)WdpPc_iCM`xe3)zc5gaKZJ|WJ8G-*rdM*nU`|l z0pfSU8*D9w*#&QfF{^>VxHC#2lGtf96Ep_N766x?X7GD3@W&3a2PU!wLbXd&BHd6u zM@db#f_K+ur~P)p8?|_(964O38#|ti`c-RS>lL(178vo=`w@odPw?>RKdPyHFfp*X zsdej_c-&C zCHl{1Q!7u$&SBb^(&nGb&^6?GA$B8<3Q9~#)?J{yr zTxj>-R+>QUP-(B!<+NFH$?YL~>I|I3(_YXmjSw2%udL5d-R4m}#|-WfwezHGF~~6b z*!zRdn^iv(9}J||d!6`V6sI|3|Csw?Fkqa(pY;bEpNJuay?Q3ZyYR5o2Uc19*c!gm zI5JV;G1Xut_?Tp;8e|*j%}s18?BF)z@6;v^k9Z-kE*bn|;1+jO#w1%K4R)HMZqxdK ze~k-z-*>M5`{WQybtAZLJ$Ew9HX7x^VSpXRBRx_$D8>fGNy$fo%A-Uq4Cm}_`SED| zXA1Rnv8iI{024z05M(X5oI+u0B;nCR?buIXZ?5=AQsot@5E(SLGZ*NPnukF3IL{T` zm91lm;>Hm#@nGJ3?-sPU5PfWPHAwV%<^AYy?CCqTb5^c_q zUa3I0e3S{gJE~bFG~**ID3C#;E0}6vA&=Z1{{mP)z@P)g5EFcltw0*S44(W z=gMmX`NhQ?P=hPHiycdN7?y2-{Zh+d2*sS?=)@`Maz*6Ht5Sc!Qn1-uXok#Q7(&RT zV{5Bn1#U^Km!Pe?-FXF_{@^I`h4#P(^I4Ag6^lx2vSLgcy2Z$3$CXk#sPXfAh(x}# zEg210;*~cpoIpuo>IlT!6q3(GZkgg zO^0@{E>lshZ}qi0Y&HY`HSm#v2ydmqupy8i9#A0x42pV_JpG2@rWw}4M6?C|0wU3rUXBJUZ5nN{6nk{7VL|l75DJA4{_?2a+ zj4q9cmA>A1YOS2($&vRSJh-BROL0hPnaJzegsdR$VJ3iVi9AM)Bg!jPg7k^M3^*!& z*@O47_!y_S#8!5um=A*8+6y{OTWr+%w$3^+6UzKb& zaZi60BeotAlX5aMlNOnVlr%9sCcw0I#LhhOr&)QPjcchLfm*w@Wp??iQ}oU-40)qS z{2;NHf1HyJx;3%qOZvW5=@Av1h=doBY{z7`r$`$9y$O809S>8n)N+jR{EsfGhbB~M z{n-)L>b`XOs{-#r_&+Wby0Z|`d4n_5p#7$6bWdUA>S8P(RSY$4wk2tSj$YkBjGg^N zk{bg2t!&84f$tZE{{0NijSEHi^*kf!bqz*KWMbvK!pOOYPD>S|8ngmS?N0&5iU0{< z>%hk{<@*P{(guRsY(ew}%bLEkY`^>b$Of)=vSofJP1KXDpqq@QR52A*fdyp(rbbz( zjBa>N>b6X9UdL($^)U&2&{H%XIp_9H053!$+zF;f)j>h{r5EQMYInd*V-u|KwaZ8F z2~?(?%i>a1MKLj8f_LSG0##;#(S?a(U|C0d{>;)2HLb_vz;LnNlBM-?Y;z+r%ak#L zG69NhmnQ?X@c6xE_;Vs-iM-4e1rm7dbJC3Mv~tqHccepGLm4f$v%NCTg*ufPb(lH0 zK2-1}Qy1yNJRXV|@bL(oe50gs!By_T)v))vnQ?JkE)~|!(Ry53HdK?Mzh*`zrsknz z3D(x+@{wb!Oi=tf_)P#XxEQ#)+y|R-lVYp9ny71}-H1dTx}~Y)UkMksN>rAv>GN7} zl*oNO$+A|2XHh2m&olVYiM`T9Y&KJbU%x-KU+&Umo5@aI`cs7aW{6(tBS*EBtInVT zxs-hwNj3MyjM%PYCRR&qlu<~|awFu^o7-Clzn(Y{KjzI_ru)e$D=iBWYB?|C@U*kA zpDMjp`G`4yE`=A12(-fOkkHR1LJMk(%WsAe)1?gA`uyhZBPo~3%&%PdiYw5)ws?LO zq}sk%!j>C0f+rWZ9EU8dSZ(jqOQO8lnd|&u?IvwpjL|NYRXs{R>loSIYOTo+%+)R5 zA=srD962krX1kBVe^(6Ox_~Zi`rj6yAAApY8pR|L^l!K*Y8_{~ljrf9jtEJWrwc0G zit`T??0`w8>~$@u6sri`Jzxm(&|0UYc!c}Ti3VLCPtWgT(NeGw9hRnxi+0Pg$XsRC z@wlIMDwR;?6$dM$7_l&p7YTT-xr2)@US4@a^eML4gL|pXWc3<$swOU)s~8I4KTgO( z3^_Nx3pfGqg?r&Xl1W-RyZj9Mr9w2^$^P0}TQ=}RshMi9*1hJ-II50u=vl!?D_RP< zV)=}@TjCEs{m#xfi{TPgOPG?RM{K8P!8SL&Ba2_47}PFz>YIXs;vHT0Ysn#i zT`+4mK{kS;cG(IzXrf)>(!1yeK%#)BlPKh{(T1Ew0ektMa=J)(T9St=ERGu8Vs`0v z*1K7DEpGnX?yCqR(u3UaNXb^Au|ya6%-U%btpt_r{QjSbS^qI_3gN%g9ycxk0LH&C z{$C&Sf-a_}|EmgL*08bL6h->6{*IIYLQ#~aw)NzA%5H}wU1Yp99*;je3M8PQaHM1` zXa~}xX|MSGoSwQ-Bq3$*&8M6r;2+-3Sob)|$nY6&D)YO^gX0M)(B3t@H`L%~KO1;F zJoFnVf8u*KX*~th49wdZ)HLR#`s=YjW|2+T9|o{W?nR+ZGp|TjWO!%>bS!lDs14Q-M@E<| z(1B#JkKSyILQWKB+kkTCUdoF1>YgM228kK1lyAWdoz<>B(MUibf(C9pDp){3DfBQb zO@2?c5*6PmDEBhwoI#A@xE7cKa~S@E8f~XDlf5C*FKwOMCPLhB< zi1C*t8dB4@P~*vdCvOsapk5iTxRJjug?jj}=VWv4MA{#+QSGz4{R0Qd74s#6$-gn( z{odiMM@wy1(q9%U=)tBKnfsy^k%as$g(+KAf^em4%rHZAM!p< zHO#KT^S(h}FszjzpR2N#AJKDUPctqonP~*2-#joyh=!p4mb+Gv9$6AaoMz;08@?MZ zhjoBD>gezPhE_-qUP_0Own5DGK*IJuCnZ|TD}oc9F8Or)j3g)MQr{_6M}yLZ;Kn-g zb&Rlu#@HskU$SoeK5#`W&Mq0R@8Q<*kB}*$Y}1HHx?t%qN~vH!1Qi-HGeJzi$Qax! z!A{#j(==1eJP4}jm}@Jdl8(>B{Dn$4s&5CqrMsc8N7kzD?FoK4E(8^e=eLbL^NqYF6t7>r9NCjP&3E$W8O#X(ViK_b z(};`SCLL1;>;v@s1-{OyZgvj~2Awftj~V2ksV|tjxk`MyTHs>>-ypq*qN0m&$h?&i z4_k9=mf<()1@OXwyY3aU_!JhWz8mz4w{k@3-7&OeR0X_pR0A$lqEu)re)#~ELQkAP zXK&I3dZR$h11Y5D$6T|_9 z8Lf6KmDq~!QO(rWoGAvVQ_gpcJJwE1tD_po4XR>|V#Dp|PvI|kq-rvEDZNO_`vE{w z1d~KBBsF$9unOAc9aRFZwM=eSzVib+0E-X#=m(hpcrv#R`PBk83Y(6SVP}c^)RF4? zjUp6385GZzIf&OW&Eox=d4|zZgWT!bY1Un4yK^9GHJ>7(U&$Z2cKMGG5F>XI}d)}<`5hV4yFt?-Kz8CP*ndLh<* zTG3^>Dvh;Jb*I43T$oO*DA2LFst%oVO8unrs?3xU=6NQ@GhU3XzHe+je7qkBRVi!e z^1=HGP~$A^ZQVY$?^Q3h%|rFgf=oU(Jk2vQFiu%=&n!kQxX)F)x5r}_0-*s)m$BT% zV_+`|9oW>1l{R{C=hn~e%mc)e&V<^pS)wGzHsh!uqF(1U^rAebX>B6BwXr3BoWA z{YB1%s2-8c*0M_dO-`@ii=I#Qtx6Vte*aB}U556&b@2I0bzD_9qInL|N$1;<(%wa~ z$!rTLVPzcJ`%0JOv4Zo=>OPIp0VKA-Th*3Lbg;$&v#9e8)bm>3aqIf+-L9G{5uT3i zmHA0gxmq^g>@({7+8fxOoi>ot2AyACqN1b@T&$Pdc}m=Q-?x24zvsiPEB(3~c%3@8 zKsT>}6hYBG(&$4+RxxFm^xEIjs4MZSTT+#>4CrVn>eAA*FWxl;jy`Pemg&1cg-^)h zWNKb*0v0!;6a%Y!Tusm7zXI7+2+UamHupN0yObwnWGymkpxql*x9b**7sEVV)6fkU zkB0w%ba#7W=Z9X&2X#d36rpDaVG8M^zPI zzE5#bTu+(kwZ1v!%9ABj&kQFflJJUL$S4|BO!O4y0T9b7>`%~rOi|F_jxDkvlq}ZN z5p`Lr@E7p)TRW9@#yEqic%^cHjZ0yT#p5ygo87S&5kZ=G>66+usuVxm!PfNW)7tC0 z=q|kp4-au8vq~699Mg%QF zXUgZ5+rfJK!lIP%=uAa!Ru=%9P3FX~Bc^D-rAv+<1;3NVUYNx*^9yrv0VHLZHRH>< zHD8a;2(r7 zx#OZ$2gOdS@BatLSGrSAs`syk_#gxTfcbx8m6)}ip@Fs2|NBTi*0OTKZd?A5{)I}; zi72-ep|o9epk0TRQDFO)EDSBaGUdsga)gYGPwkpARBPN({_Qyh(r@UNP))R0G) z0)?};o$UbF`dqC0oMpZzpO-y#%jnELDMYl1I{n=JgHA5uzAW7|S!zDgke{Y$tT=fk z8k@xcd73k6UD~W_L6nT9lrcV^(>^swl6J^1%|t1}g*eYLMQ1|rpd37&lRhau6zrTF zMx`)b0wDtOk6MJ0EfNyZ#g=`ZN@HAuywveYJ+wgRVmaMV%5T+`+oqA_!s zK(>ckVz8dW{V~-(;!a?Pom-zXJeOGE9#;R`XMXQ1xZP*EP$1DKEwdqf;am0Q8DE6o zRbFl=;Zyw6?-_jpPoLryUS7U)*FA^VY9B|3C0;M;o&Ke!9ryAd4|N~2J53({cIj#Ui~vfE2g}n}?*mO{mZ7O+wS!sp6$_?qtM5qToS8cV3th&# zM?pME`_|{%9;Jycw;xP6lhxXjy8_IrMJHMElgO-G>fC$cv5}K8#GU7(tEW?6ql`Wk zi$qaJ4U+C%UeT|1ht42ylu6hrC6Gi^gB$7qo{Qdqh=c;}D+h^TJHZ)HV&QEW*#I-- zi12B8#>z+G)C>tY@Af|%ACLP_vvmOo{sxHi7{N)lg$S@qzlTA#foBL3KJDN}ZE%Ce#BCN45rmg{Vi{BYGHo^?13@Dl>C1FsE$83qSQ89_pUzhz&%Q2PXB~U z#SU3dDbB@QdkI&@pqTO-v_=T>KVs6E3@!xQj974pjzi#@Si&Kqlxk%FCWmf_mLugI zr`fZ`nIw^N%pO^-sV2voRB%+G(&|FSHJmK8!r8}SZVvab2ou?XVz5>Zvu%~n&d-dj zpcE>0hTJ#(0iG@bxG?Pc=l&CH&hm0-55sO0AO_m~J3zwVf0*lJF+I{o15-I%w2c?M zssQ!^!t5ZIEvw$eIhxOyhL`~X!KjEi>}^B}INuImfW&uF@5kCxz!_qnerJ$+C8L+=1#Whn$fCy}dBXvsX z3ZCGi@OCIl2IYgK7(jABU{wQO(J&&>Dl7;R@D(lviY(w`4Q1^}TY&0lR|0_d=9og@ zi`~@N2r!)3WyhQjs42oQv4HUy%7&2{S(98n%r7d-L&G^tt-Yf*u1#`i$W~|F-yVSrxL`3>LC2IX z38Yaf?rVgH-K3=s#;T9L-o%up72FSl_Z#JuK}z7k2pGQ@KPD;4>#AmK%P!}(D`Zcb z5uIJCR><^)$QlsxdhHdB2+=+*GUC%S#fT8!J%BfT)u4{oC)uvg|DKq6Bp1>NX%sv_ z<%a5b$w}-^Sa#(Pj>RmOYskwZQK6eW(x7@!Dhl=?r12!y}&_vM!Dh7QT_H zBpFE1SqZrkJB`{*Xs|7gbHSPC`Qfs}{rw|)!8EydsT3}Ufsb>4aRiE@Aw}w#+LamG zbk%|aWi@Fl9)l=LnQE*Lt$)VmiTe^VyH z!-nLqT`4`3Jif0H+@=KTWQY0+cJP$gSoS7{J?@wUB#M!srUK8FXgssve0eUgURPgHd-#3;%n~d`E&g%BcHj=~ z2+S=$V>*+;3RwZ{Fw6p|JdMR5Q7);PbF^M>8DzjWyL8oDVap>Jhy`*0;VT7=JY%q{ zwb{ZxqFOww1V=(fMp6pJiP+l1Vragucs*MvBQRKe@2D3xH9y+Lr*RRXURi(sQ@*&rM9uvrQP z6o%hn0_583ivC)BQQt6p^%{vG1X1imgNv@8*;+GL0}rj6PU0jd*tcfDAC2r!sVYn9 z7F0CYo*S!Xr_F+RB@Lc-faQhZpEy+e)@Iddd^r)#4l^-sdj~U3l2!BRfFTBwj+oI1 zO0SX#)h@s8^6o@t@a~4GcHC;j=n)w?785$VGfc%(Qc4y~{8;`^f47n7EXJiOH1wgv zZFEuL5@DEPwy$*{KU(s>wOd04JL@3@R>3&tsN2Gu45XPt#?Rnv~PZ!v<#F0W# z=q_)|BagES*+!Z)S>e>|lk@K8mI((ycM@ZnmE#hB+-6o1fXm)2 zri1pth;U7Edt8@^mZHc_BSc&oanIx&1+oYt&ihv*s}23Yd)(%H`PB;TeiUvjQje)uoggdbXDeaH6qOp_FoBgqN~nLETJe zOqHEuY~k%*POBQP)vYDioLM)LSc#}gPV%1_z{xP=$SuAcdDQPaih`2=HZ6a1E6*39 z8vby+jr5u=aEl+gO-tGLOX>qJq2Zb7 z!vhVRaGr(GK|*g3$d@E@JOj%m`LI-c7p!wM5U zhPJwKyDXhn>x696r+Xc#Mr84uSL5av%#&}PuotWs|Bx(-KzH+sPNIc~ysjeor#uj8 z%O@m|`7NZw%&oVF5YSCFLhQ0H#b^3%&hb6k(5g8^Yi;7(DA`brsszwo_x3{Grla-i zfE2n?)K7_67yGG-w@}5@D3@S!IaYl+RNLeHd1aVdbC}m+4+_tsSi&UVE`R`XW8GV6 zMjkD1Ccse1%kh@PS2E;cMN6qLx1C!WX0g;lpGA@#91Yf|gZWf3Ipih#Tq4+4Ezm~c z)F5?Js-yaFWHduHO#%XEe;#>3ju|_}ot@0&LN=JGr#vJrz(YW$l~X({hUREaXrABv zT`7QcP*Bk5d$I9L?>hfSBC_SNGR7}Otmc9&F+h;Re9xbZ&Aj)C40i3O)%{!Y3LAJ7 zuoad}_nvW)t+yOA>yOlAt7c9Q%;}fF`3cQbEqHucF~%qMCXdWIwzgd)B%Wxj3<$$^ zZf3^n8?;}Jf3l&1i)&l%d70`~&(@&!*T8O_!$^k?Xx+*w?4=hqNrD=w!3p-JCNNuU zcEXHiAv zqAuRl)@u7O7cXCWgEgNdp9E_B>S1d~QImVVBV)FHtStEp6gFiwag|J#_wAqG8}42+ zkVQn}!(@Z7GcBF@E&s;vmHh4N8=_T%S`Hs0+AfeT?z0GV`rgmYo3`ZCe-3LTP~hdb zg-InjJ{;Y3JU`G_Nft*jFw|cMx$BN39ZvzD>Yj(SI6Aeh`xe??$5dXy7h=J59ZN#Z zb&~(t@X{KT{=ir{3iojp(KuKTm7i<+Ugf`00V%frEGF^coASB>-WZ1Rz#h zbI%4`j1T5%o}U2G1n9#KL%u`5Hr(%BLUw3N0MobF2JO7=cZ5HtR>9*LZIxAm!o z3wu5&jaH}qktDIA-dD|y8anP^fA{Bwtw`tw`#5~hg zDX=u$Lndhm1^=qS3Q~7D-kPB_MNL`CfW!`!3j0=HrJ>y7Xk-U$>Pl8+>qbHj z6iD}OYrs&|DeOx#Gp+8Fu6;UUNMk-9G=&O`kY^TLjD7&<*sYMjwbk{O>Q*dpdjo_s zNW0!c*qjL5+-iVdat_90B7XqCbE;-Z$h*cQXZ%QYqkNiGia|=d;IFjbY3c{US0Lg6 zwL@%mFk%kvhTb~K{(!QHk-0fYxM%Lq8s6o*&=`T-n{k9k^H2;_UFpHZOp{_f9BBpwZZ!y?5FLAH=i5HC&dg{W4{Q z+YO%~tKXlB*f~;bXz-rl@Nn_p$3(~d5l_|;xPCkZhHLnX8pz<(Y%>I<)c{Y=ht%7H zRA%tUMv%cG7_eHXXo|O*VRDfB3(zn~1s$SbkMAQm1{29tqTz9Z=MGfs&wYA{w2)qv zN6^nkKaO3RsLrRB%p8JS$iqtSOIiv2Ym25zKMB#5K2Nlnuus7S8t@Nl=rkWQ95mSG zfPqijK{CeT0FxY5)%Ye$*U1ORJ`}otzV8%PG1nA>Jy)^^@m2aLIpHsAvr}1zBMc0* zCbF@t1y-c=2EB^+Xt%pbH4_Oj;mAaY#l6fnl1Ba#G@p$z4k1EYEtD^Ww!zzkX{-YZ zV+Ne%EMp?ablsyQ^caXQ1_BWN>YCB=GGSM73yE`&7k?wty`=g)I^!X27N)7F z8rbrS`~%kl6B{15VJf7n3^K#CopZ-2y>;&WZB$n|ZDA58dZn%&Uh&~U>~2g-J7vwY z#@L)O_jfoIV<%UpxzU$gi***C-&GlGzq*Mx=+E{K5&!%?Fa*&&iu>ZdUOWU>X`ma! zQ>APjdXBD~>f1z!Qj#ZV*+O9==JAj+x+D1qhBTX8|0L`p*drvFQ|{dWx@z!<=HCQc(*iw#4v|KZc}$5!puV-%l>xdkPSLo9oYN*qR;F8<>rpIwVA*35lCtXSFSGfVr^}6 zSWbyF)y45LAm~(WRj7Ub>7j9R=+^*~t7bFZKXH-*wfgV&K>gk8J z4MCxk2X_X@k_J@3kxc~0qy)f+#vCiSl<21zE$B+GAV`2z%y#dM3`vnrSv$W(ArgoAG{!!^S}LRrWt(nqGP z#1O+P-LG!PhWE&%DFpaS^)C_&I14|^c0k7N1xlQK?gQJ-!3H&ieMasketIn2F=Fg5^MT6EMNLs=5U%Bmd%IVa=YAju(qGUfddhE#?0(Ro#jS}o<_a7RXM4m z&-m4P%J$KB^75~Ac3ZaLVA!~1UhivEJt|}mPRP0uY}8Dy0L;O43M&#@ary|mo&URx z-?cbwShj)bUHD&gvz`&`Jle{!4678eo3n;pi^^%kdZ}&q0@Gvz9>`WX?ErJllq_Pd z@uQChKSK6~|A-WAiyHdZFb4BJ#Y@d!>H3_v{LzIO7HRW2>EEjW-eQ&AghLLhVcm>b zG119prNhR@)m#SUX%_-9#v3_>1_w_t1^!_HudxMZU%YY!<9*W%>v;h?KbWoQRYH%^ zt%@_`ymg^>$f8hJUnFIzZ#-ncL-AB#2MF8^^C1_ZoXHl&t`8{WlBxu`_FbLbdC~6l z`>O>(iIC(CBm3Gkba-uJ7YaspbJWw^GxsMc!W#5ZWI>LI)NE|>v8ML%tddjn=tA3f z`{e~MOcY-bfzyvccj`p{sEIQ;w*dfe_>5A)mP6F6|BmeEYxy;hZ&(F|%;14VZI&S* zcCQj+`g{AU=Y<<~4eq!degF(Wr;s^r(8~@+HaM3_6}jUM8Te}+UTh)mnvk)u(5(NN z;dzTvR1ZSt5GPGh9|NciyiAA;v0!+PeGCDQ1c3j`DfDGvaPNfA!ZbmOHmxoAkK%0rxi+}ob9DQ%UtYN1$i+n3I7zfA8k2~(!jzaK zsI_aa9C-`c$9WPXg}yfw1I+*v=*Q0A-l&wEB(#LuIre~A0Poa*#{ft%xV3#CS>l>N zE(`1BkC+PjCtLaRbG$qEcdod4kxm_$&Plddbsc-VDY6^hjMI`W|5*T=9lo}{xP+2> zfvK2~0Xmjt=LM*xptB_G*JPZk@`*1?>K8XCy4`T1_az+?3u$CR1flGbrm1x>#x)8v zD>z1g2kt$Mc_J8wKAoa^JM}eoiYx3`ZgQgLBnHxs19%lc#KFl(1@nA-8F`=4W#;$b za|qCW7B1ri1ZN!T*Z|TAsgRgR@rcb(|7r2+z$M4AV3p2O6(4{8iD*xepsy@L|6Q?N6|}xl$r_Nq z#}35M%(;jYG1>G$RA5u`&l;*w0e$Tp-*qQQ@A%t}t-i%gB;u*o@MSyr9Z$EbACi z1n8r{97SpfWy%^so;%V-gRSXO(Sh+E?FJwjV>nU>Jgq_$^_Wpevlnd%OjOhB!b*R_?)b6kJ1-N@Z@q9#1Al_D(xDY+&D6wzntM+`(U+^m|T3 zFL7;s@OJ$7T5A?A@fot8QGb18hX+hGd_d{N!n%mdF>6*)E-iN_u)VuFEMYRy{~pg5 z>|e7!wvtmY%{joC=ya>ZwDMYS!2pOk#I4*AW)5$N$V+o-X=y=t*JHLXldXNr_?Kg67!Kqk7 zd@YjgIoknz&BjP;KV^?%I@~{!t;xl_%#Bljr7e|Hu7}B!Zi5_zLhW_Wo5mzSO6Mvu zGaEq9YrLtW{>@K+Dv?sF$s95R0~CO?FQ$3w+2kj4KghR}N8KOf(&0;=k~eM1iH*_* zR_08Q^|Jr{UKx`$Vz}ZYsNx%$+kZ@-5Xjn zP*6Y-U6#$7x7vZhs%hodMDzOmIUJyWzM7;L<9~dGp!~(_o|3^4XMT!aFbL&x9E}uz zmBX$(5svEG#eK<~nYO4}JoD)=_yj9;ZGLJ8+8$8c5N2mA5l*dKprMT$xuI*z+Jn#b zKZx;ZXLC+~_`})L+xq!E#vV4dD-8OKCrg$ag-eC&%C2}MUr_|76xH)PKcFSxKs*6` z$FMc#hYKa&9mVSq#|hA?Re)C-g!OKM<|rI0H5o@EIX<*6#h1&6b{p6H);G zBa&o8FX4UcFZZ|d*=Nm!!vb`C!{du{%|D=Oz)}_y&N^R6Y!hh-E$}XS9jR(yNE-?k zZW0FxV|5-raz-@i=V)obQ~d%hzy#;iC-B0d9)=-3K@cQdJcbW}=o$nN;DBhzOkkEQ z2e@rSu1v~7v5e5~555|W6tk`R>bdT7XVA?k>-F3>$-l9*OXs!iqf*i8ZnG(&2YUNI z1vdQ3SB(}+c92V~%GE>RK58|m)5r946~B)rL^}jCp_Aeq78+M-hhcNNbbpGt+Nd_? z!$7nwyT#u0zX`)atyKBOsJ$u? z%tMrtdCp$3Dy)Ce9U)qWDLLc$zgAAN69;x4O}wd3-wzgZ4Xun3CyqD3)1AQFZfxyH zm)pUei_8}(jn%IM6C%AlaUZVks{P4cSxN?Q?t2EAOHz>{us=D#rnpMT!YkR}paO@QFf3>hr#_zm z#2auK5H7g+vC$L(0bPi`4%RsgZxBd^AxOkpFO+Rkg**6Tu*Z0a>FU_ADWlP-xfuA5gINi>;ug+G^6+ZN>jy;WT&%@qjRnn?-g6i*y&fz~WQq=U`jY>(#c28w% zLzkM0s_QFN3$swc!jd9Q2}V-!B1m0M$vWGnO;1W$<=V7zH!zI@10lV^ zOJ4`A$&7bTQ!ovlO0P^-iX%3$u4jPW0az5N+JmuK;- z)i?>BoBuHaIIu))|%e-2U6^Pq{7TniUF8-G!Iot>u_T4d?;{ zx&QV31MYM`kTmeT+03OqUh8al+~aAIjLhf0#tj7V2kcG}tYo687Q`i;j?#=@I&-mp z30yz*+ZKf5hl7r8*=KS2c;(MWE*TGu;VqkdW&k|qjey-*_jGSA`-V@MstoK@UGlt4 zt6FS~j2EiGj$Wmj6LFPyiv&Wd+9e(-J<%hJvpp9rPf1o$#ECkm@3p+l_F!I#t=hSIiiDNGjHU(hYjMR8-qXJ%jrYie;>e; zfnYvLB30F27=o$2Jy%6MGod~0~k^ z74c8~VtiA(#FU&4dYG7zJS+X2DJ8X7iCyg?ny?~hlH0vP4DD)~b~~gj^$zU39Jqoi zW3A?NVU$UpS-sI%+E0}Yc9KH_8epAxoEHt1oHEGc9#%ai z+IBT)`iNKrTPLG7p!n6xEmF!#{YoUoS7U?VJQ!(g9`0gSL6-Etc%2Yo(p{iKEA=Xo6z|$bNmoEiL-SqDt-ox z^%KsF2eIJhkihzST;W{jHSghXm*9GMPf% zKU(JdG{?ptf0^>nk7ZD61%Zul#cw`LdG#}&)B;eg5>(Plm~khzo>r9FsLE&6nV-)l z3UUL5&Z=oiP5N_!*lSj1806!eLh1lrxO1UM6U1j{>7MTx@TaP!qnl|#D7G12u_ z8cRGr)?SDxY;-Sc;dG@jgIL&0PjWYA#!O?l{Nz%Cmtbn4IR~VkE4sz-i+=1y!(T{z zaC{~XiE}Bo7D>@v?N6M1na66xq7O)0t}YPkQQprj7(%8OVEOd1kb)&TFORQPKXiSI z<;zhwIoAjB^RACY(9m@?O$5uI6vAb2X6|;Q@;QsIN@;lnB~sHgbzV>a=-C(uAn#Z8 zviRX^+uELv*G%_@F6%_RoOL#|kEZ91tUNynpzZLR52n9OtC8chQl8FXgo_%O?iFIP zdS#*(i^b#AEA}uE2Ohfwkx43oawW6q58Iqr>Dn})34@S%sn*%L-#oS8(ptHxPSSFP z6m-&5z1|J$XsT&|x)ouHf^|KcFi(K2FN6K2FwsQK>x z_WSQU)cGDkZ&$4q(%AL2zAK0*q_)=cSyx5P!Q;n@ug3}N;<`$q zs-Vrj&d*oqv-OuJH2lgq_Q;=4NPERWSf@_*PmhrmpNcVA~>+qP}n*2K1L+qNcl z@`V#yUo^38+nOYI{`cI?IrsFYHofRYSH0a;zxR1)Xm_h}UOfV3m?i*E(~Z!U>I2k- zc`-JctcjoQWt`QM1ABn~2na2ULf3qL&z0%i2d+hJTw|s;*(S=4?8g2Iooi}L;*b)V zEaNmYA6X14>hD$YGg|d>&S$_{b}wtP^VYtYlH!QrVel-M)L9cx$1SsM5*#0F3&U1ygG)QII0|6_uxoDuf`C4@lz$0~#JWse$LWoO3e+V>IpIMpm4jbBx0 znuz9KgNV@ljWPc{^{Z(Hq_(6CY=aYT>>$W8Goj>z3ii$%1L*;I1$ABokI_S^%vx}` z2+(PPnBbp&&~b?R50QXy{1CszrgKV)5}VM}&>sK2TF%shb_zrxGpG|j@BrOA#2Wbo z>@Ykà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ƿwxmG- z=>tN(Bli$==j}eRtL9t6A|gMS9|f}CFh^}Jh4jM{6ZUBEpnNSpjinj1$F`1BQFR`@1y84zYhS%dj}m} zjtwee;4L#gVTf=1>A7U*Ice-%541oCP*?ACow;?6TVehs@Vf=)|H#+6F5|RNRc~e+Q1ziFnop!Bp7V7> z*$B}mucS>SRN_?+mB_GwCQ>&rP0ucB%{L-c36+o?w_>3>n!Kk#WFi`I+u`7`Jk?S>K9ql8~n(*Q7OGzp;u7XwaT+6ENe}`J)-8CuP&JUJ6 z1z!O|9|SXbf2;>=2`ErWw^Cz6FCj4X2OvBgl`%AEE$0g8jqA%fc=WE|YZ3W_Kl=so2UyhTN}(U| zWvDX(Wcc*F{8YS_Pn_3B5SGJHL55L{jN)P}UgvlRB~c~7bfxk%%K9WB1~_}bRy>86 zCRUP&0)a1OGD%QXqF5StCwb~&|Lq=*vYVVw12E;$P(rzdSd3Jf4uj$7DEph_`45UPS9;dszCMe$`SYKV&5D$;S=We(p_(3)sk zAu>u>#IcZel1}x=m6dZZCpeok@JFpu(k-!lUM|q=Ok6{+iCr04#F6PL0b&Sj z`@gaxUUS8ICP~v7orzR;&uZGj2l31%F84401na5+^K^lCB>|fvNTQ@CvG7h3*xm+^ zjEeg}rMd0v$3f|?skOp=8Rje3I;Ype!BFkiyL!#8p??N-Yp$MGuGX%RXc-Mo)<-6$ zGX&5AjX!Y1hfZ;g#ZwkOA;AsqeLLopBBwmLPoC4vdRQsa6ZfEu(r9dOc^S|7IDTo$ zOOrF;q-0iIu+s4{=FSD3gRZ)npuEX)f&GtLDLIm&vV{1A5eU$S=TwYIp;chCa;84! z^>rxZX-CmKGEy~nK_bORslDndl<}(Fw`opL7ljB8QC~GOeIfk9H)DPM4tFARkLN}i zbQC>9Q`ZQ!5*l9;3bIRgL${q0m0>!yM+I9t`RVu#f|>8MvD@@%AS zY-;+bw`S)x;W{m$k>vf@*c7NGFK|-6!L-R0uIWwOa9avzX%rOIrlcYsWnynhxyVEpgP10AmT{GP~wh+oy-%f{l|vrB;I$6vrkPn(b&j;!7id2)BAFelD|)x=X*PXV$n?X~xFYOb zQzEQvf0rL}PtoZjReM`c)Y8OJT25~%Q4nnAD5Tj?Rjw)j?Zh$)dxfQDj(S%@DNs>Y>^2vUPc9taB zk;cg|<(jRs6i+xREBuY{h@_J8qTKD5S?Nm%*xRAefo$r-P*5x0U>#puW=2JnuEUcR zvjx3qCbW)ddlu|+rT=sRhMVjqBGAp)4GylXfskBFZ_zi~Lm512+E>=^EX&@{nLn<{ zo5k*gOaiQu9wE)wLsZcvRm*Rt?T7Y~zmk0jy4}>QzXWRt8ew)Nie_U8dxdvDj)%&0O8E%P``D)s!{*Oo4{EFtLYs5t5?-tL>P2}E__>Uh z(s)i_pfFrux0!ab3&$|Vb#EP=ZD4kLaktJq?BJMH&FDsKwBmkM{uw-`^&>`+Fu0CT z6>PCpBY+2CXQj4ff|*mq;8B^adEVniFs5I0cb5WO=a+OYb5j(hn&*+Ngf!S&P}*Yz zhm~alWt|v9P!RP>8YI&!Jmh&ahlv;tzP9059s=4ZcPI1T7g2d|Op$Egx(?tMu?jgYvzFOGL`C_P7uzlfl6OCwMak^^v~kI;W*HI$MGDR8P2 zRI)U&S+lr35J;YMx5>KRVd37M9(P$_S=>t(S>Rin_$ZfMewrclq1 zP)NDV;G6;}rC&8Ic~`4Y6>Jv1|20EJ#QxGFn$4&Ck@=1Og}I9DAWQJ~e`~%a(0vJ6 z_?kMRz2p0}>!Hcd;rYD%#Q%9X;`grvaqNTZ7}s$#OLOl#1`xqJyf|p}OnInhtDoEn zQ|$we_g{eE9ZhX_tO-QFf01UxxrqK; zQ6xS4#>5^?nt~M$2p512$JaMQI@o8cbi=ct;39JSaj#{(7@ZqU$ci5e=aH7a%wWrc2hS zC;39kG(*a$fT4s3eW9nD|k|;~__5iUnBs@GLh{wHqN9 z!T@MEkWF7mA$9r*n?8jAJ|xXlGM`5R#SjUF8uLs~4(p66F~j0ano>)7XyLLxQ^5=I zxI$yTb_a!>N}o(rPVTq@N+J@tkbp|4amY^Gsw5iDXf0P52Lv7Si@+MUK}v|VOnzdv z2AW@KV-c}{=)f<*n6YR?V00K%|20X)go$X0KzP9G)x(@nIU$!7l#RV$(&EG{qxy1} zqR~>Xm~mO^6bd;ww&jQJPqtdPVXlaxlQ0~ZBo5UhHTU6Bmf_k{QjAHO3*4|ITvQ9L z3)ReWrXwH1(!<8Jtv?gO zt%{D^sQvcRK!wFi+1swuu(rD!UvDO)g3L$J1~(%g^7jJwgS)%SW%vL;9r>RNm1uH= zQ#~EH9YD36g^ByiW!!Hny+CJ{+=v42gINMMHnSA5bnf)T_Nam5V;ud@y6pmP?=ykr z3~ua%?WPBj=MhtXCTIED(C>)$?o6H7GT?Lvr~zVk7q-CMfe{0iDocqs4} zciPIa6(y`%?`IQIN<>Ac#y{xyR8RJJIii(EzfJgVNG2S5M@kh@if6P*O9&`+)2;@5 zWkS=V9aI(X8FOipwUBgvhH2KjMbnc5BUrUqKh!fbO%^{l_>fSlz{Vrt8^^`%)LqXN zhQ&89bJA1OWzxj*XukH&m~G4%V0C9lxsHxA6;GJN(Vg+LNTkEo7qR({lK8fPyUt^h z{kSNsZbJWD?-FN@JvoywW6w)r(l*L|$3ZkWa7^^I_QLchsgp#*cHpB=S|g)npA@!o zx+r;!12Wt*G7>yyEEgdZirt+7TzL`~pv5~9M?6*mA(0nHB<#&Q)ZTS>sh!ZqMB!;p zV2L(eZeQs;H>eV|~X)uV8b2iChoJo%3ecy?a}oW`p)>O7OvYtbR-)_%8qrC3A-ts;O$2;_T+Y!PI;YS z!epOj7#ZmI3_*=YdIVv`=+2Qqq`OAl! zsf`U*wQ%c#34;&}O|S2^v9x7ZpFH52E>LLW&NaGR!&>{$&-M7_Z-5K_=DhlF7v(Eu z5ek}&s8yjZ;#rdz_}f}lxjwzpQN3DPq20MzJwOrB42NT6@80aKEl7AU>B8~-l8%Vf zDu78OIR4K}8%e@HE3>_NoHB1#IsGr+%NqAR6!!f)w^m; zM}eaRqjeQ$_amtoa|i)LuE+kCAO_`zJ<&x{Ho5a4(9vXrt8*(2xFy&uxWu^v>|9j1 zyU+!C6lh|zw)1gH&C?-J$LYR-L{HMEU!OU`X5+0b@D)Cx(yf1T;v6RX7cIi(Pb}3?YYD-5PA5vU;7MWne}%K z$OE`zNcmy(vdy-se?go~SFRhU;3z)qW3{Y^WoZ=8uf&bcglP2lM~!lH#vdMEt96I2 zDwi(K#C%=Na}DOs_L7d$K*q#`Lc0tORp(qN)4!YtdRATj%6Bh~Jv$e+C=qC3l@>OP zNJ`q)Q3JLFYn_1F!cV4|+xNB$z0xC~34`F+sA4O`3tm(m{SvFK3(KOT^sMXkA!l?4w6!#_Fb6 z%|3qljZl_guwgh33O-KE%uACUy%R@XqsnDNON(TH`QPX@>jq-H`UiC z5$Sd0RcbC^#kpdU8v-;am5ztmG_{ zW!!^Pg^r5B$By`58g-${f<78j)SMA)Lib0bD_04v5=JI~=iXb^3emc(XdNRoprz4v zUg*N`v3=57?ajOP{Vnj_g*0zClyl+G(1-@$CAHm2+&|!d58rUBL^u$uAStGP_xYZR)amnWKAX z@Z7v@2G6TBa9zN2$+#1(lb7wZdj-E~+LCLMUu*lm+LeW-%Kqcnw$pPiEO%A8g3A#f z#cJi-58l~fj@oIMr*OgbJHBnknXl>*;-fW zvfFLdYki^2dv6GxF@G+BPp{oQ&Xo1`YcqfAx{={wd1v2W65`c}Ub)c^?T-`itpN^{Y@avgvTw4w`1TKFmKZ^i9=;D?AT z0L3t2?$DWq%hk)yv%B$NmTmH^xeZAk!Mk@s9JpfBq09kn!mUmr>-n|)DqyquP4IP` zu>(&8vM!3CMi-x8bmR91eh<1=VGLW3BycoO9HsS44zk;4Vjb-Q36THr z12e)QSh*HUGBd*Cqg->)OhS|6L)h1^@VC{t)_zna9O^6NbjV!EY57=(8b@Aq+JjfU z+yFqHl+IzIsG$sZz6HRbJ%WA^6+k;-j6wrH7a;AjeS0a~9JH#(;>$0`j~d5AYUZHl^?k1T2c4 z%MOW%|4BDQd@NG{%>`LQ1fzJsAI`s`FmBA`c`koOww(jN&i~;RoZU=!1PPWv)+W-q zdD|e1!$j&rkfx2L-E_1&>K45`&Z-LTiP>~*4;X;MHpt*cQx$SG@*d5*q>(?{1UYH5 zS@Fg?$I%sO%;8GG&GEbhufb2AyO|RlJ=2)o+l+FH>I|dJ-9$5#I2>=^-0gMvsu6yc zbnp|1s&V-JkK0KQ)d$?Ut`m6c#0f-%`5H7 z#vx3i$E8%?^tv4$D`t<~1j1*U2Lu8W%#TCTbvX)P76n-83CUxk))Q~Q(w5@QO)?D5n(QPMm>K;XrByWaTIjn{oF=rL`bis!It05 z0%UNcNF4AA9Z^Eh1LCi!VMd{2P%YJsdWAVr-SH;3V;^gw7`x{@V?zKlS^;w|u0Mze zV~E#un_6sJ8UyRY3AH&lHOyRG1(y_JvAdQya`9KJ{xJZ2V(HadG9Zu+*8E)IZi<*= z%zvu(viIEN5u^q~XJOeQKAfUIRre>oWb4ft;V-s8GniVP6we!A#1LU`RhhGkWAp8~ zxk+;+Y7yTt`mK+^svOWK;j%Ja0Ffgu?s>#0dKafTmAFYYMkdbkF)`5wgF)J2n)y-8 z;KJgT-K5l3!nZQBBD$>L=(ul`=~{;W#??fcTha@6)hAQVwp%D*`K4k;*o}3}T>xb7 zQ{%*9imp%~Fr)C+8V?NX)CA9{9Dn7YR|Y6A2u19B8YQM0|8r!=0>w$R3;lF|&fKLm%NR?BV3a}88_z7t7%Wi-NxCgjEw()Ry`=dX*i{rulNu$X4MF_XC>=~1 zegCSZ=H0V60w(!%PcgctM%BXl?jALUkuL`E(Ak4e zQ+j^F8ez#8*S(Q&esFRK9PP53U^@l^@l8BN*|EiC&PEmvHz%(Xr57$Oql3QZ3hDI=HHl-Zxd0+Hq>T^7WF zy2UPtEa`1uzcu*SumvEwnrZS|g*Iu(OKDZ1|JOBWMHwfN9>Id?hU-qXLrZ#J;&^r^aY(J9NGTS|q7={Bx%eMZk&|EGRm6id~@oJfXWlf7cM7FmH zu9snHIp1shgiBEk+PRB?a-c9>9w$F(pyJbj09%7yQl6$g2+$)5M({DhWaLUmUXYwc zYDwYWK(mCvHUUWR4G{HVbR1#OBnr@mE^QRBO#uw??nDUFlvNC1p?}NV(0nXO$Wv4Y zDfob$=>ldhvwEixcyr!HJ%wiLVdHR()Twm~Q#9e$;~Z`}$3^_S;J+^@?V_d17V@5O z121pN(&=WV2v)V%Y8fBKXdL_fhFZ$Aj5fx3gJ%(kmd-S#FOT)vcP71WeL?|Ftj|p2 z%hm7Y@lM#eYIO>ABRT@jsE<_0JHO|RfqffDvx|W)@;yqf6460Wwk$Uw())WwIITW# zyc|^&$OLWrb*~jt(pU25dq|&3rEaM%EUQM8!auyG#tg$ z`iXvM=C`CU2PRI<7Hn7GrN&=oc43>6IRS0DE8)6|ue!%w!7@E@1S*^qr;os;WrQ4o zl*v04H@}iir{C~N?~#-sgo==4N6pH3Q)i*fJL^sVw|F0#5^h}er8?KmnKZ6mSH`gbA5 zs@jL=>Mb?0TFqJ#HQJe%ieGu@1rYz}l6JB0y2;tZezhO3@FetO@=h>lfte8z&uYDz zT1GPcsi6O$>zrZ)0RlALwr$(CZQHgnZQHhO+qP}n_H_5n?PV|7&2Bx`dnJ`$-@z`^ zcH&7YRoWG0miJ`c=h!ZSGW^M|j8)UuE0E<+`j*k&E?Qh(7aETbV7*K>KqE~$J?hpU z!4PBOAp|+T^2J);1c;CA%wroo`agLx_*?)MC(YJDH`iaT zQ#(GP+AqUm{xJv2U?4A=v;ITB{r(%BfCF1WJ>7`%`#X$aDHZOMmy=vo}H)BQ|=3&(^`L3oE|Fzt2%q^sP#eqMke*~$QgapmcZOV ztA78?yb&`0Cbm!R9c}R0>j6o9&uLRAjL_Gojjiobnxj1~$H!t2VKds?YWSqx6*Ll9 z2RGkY`&r$8o$ozKPkE@SgryMosHV%iXH2tth&H((tS)b{P+JLLtK^rta?FMZ^fC0P zTtfF@sk)7O+mkTMKmFS$t=P+s6CKuvL+J}X^+Q*1*Ue-PU)eBPT%tN<;c0{F>9ayi zUjAJjH2;&z*q-!}6X%_Vt(f&8Nt*}9$bvfiINqH{ z={{i)SH!tD56$_iczh8lIivJpW$M{L+G8DVAQhTxj3Xz91-RJB8qGnhO`*iDTm$L; zu1L64&0NX?+rcfPN(*aVW6+^$g*ICs&!JQ<>Hc-7kHh~tWaDSXNxC(td&3`nulT#{ zuhgwj#}21tMw%c8^C?C>?NQ~QI#_g=H_($`xu9xsC>|xXTIY=XHJ0P|-x$z7uN)-v zAOHaO|F&L9{wEVe-p*9e$^5_gAT_G8&WBNpRLuf4%hLK)~1}Zwx6b4L*;0ZgX#Qud3|79BVDg+vvq=R#|n;d^$be zZpZHIcYFNgm&E>Z&YQ6k)KQFUshF6M&d8kthv}Xz+Nh{f>LylN(8lO=&rgOorglh6 z6O&$$npzvGEtY5{QRrJx%YuUUl!s8Mb`S|-3IX8QT(SC7^;GADBrwcLs-(;&0}!2X zS+g}(i_Sz#tByy~U9}WP6+g9~YiH_20=ZX`tlp+PS6{Z+S;-Z$Q5mD4i)k(#o`Nvz zo<=@Z`Zlhm2~neYlG{qz!Y6l%4cp>)qi?lQ->R%=<>R9@R^gPZLNcJ;HZkD{s}{j0 zQ&?2Rkn+y`8^gyL87?EiDudU%R*s+NiM|4kOfMI7u(KRx>5D#BG%OB53=k&B5j$`+_m=_JAD!v( z&N1KQP_|44jO7lFa~Ovdw&=qc$2+r_C8CrVe^48L!J|#Nk5t%dr~-Xj2g`%`F3G-! zXx|~!W_?rw9yu>$`r?3FCWzwLBvdhdl%sQ;RStd@UhuH%ctmi}6mx7Ldg*v@ki3!M z9_AY@EXvoDo#Eg~_Yj}J^4Lo`|DbTNscQJfcWJJr33Ve$!?47F9JM?9Pga&-0UADz zxNZA{9P7INTcO2qnBU4SbWn}Tz}qKOTaXr|LC`S#@()puh6? z5YV7TEoi9>4`DG9v9a18?u`w{b13W5Q5UV9SYS+zi@7cRcXCU#RIno@sp)vSs5Ew< z&%X@{C&)L>?{q`%y0`M*>bW;EO|Go)1Y?7@SX=H|_{nw0kD8};RhXLV;#PaKHfyMl@RrTyYDaQUY6s6B z{KwWjIb~QP%ao3|W0gmhB<>DxIYnsT$Xk=GI+eqFvR|z}3-j*pXziA}``d#z7bo!w zrWt%{`yAF|L4U)a3Am+y2>55dWxZ2B1syZlhSy@(pNToSR{M1F&ooIShA#GEKI3s1vPW@XiiYQu}x1hbj+Uk8@FTs?b&29#3V;pH=` zRqL#os3C(Wm3z5a2wLf~UA?2HmLE2pD34BY|uApeBA0_*MYUAc+!zX@R68 ztpUhEU&5G3UOJ!R@3^!%m5fOs4mp>C*m6<@QcJ-|Ics=Koe99R3q}2!You3>OcBd~ zAW6e(ycDv3H^GY{+#2qAMk^0OjyT-0zk`(l4u!4qG?Bjiz52rb=>^BU*(OS_*x?aN zfLKsWE)*j4Xe0K>U^##&FcwyE8R8id63Synkr8qgRS@mll7$*xj93PlB@U3bsD>{{ zC2=i&N}2&Qk<5S8i~RLaKC#A3;VeJJ=BdXPata9_p2HOXMTc=X(4V{`ZPPNOG~kU* zS;4DaA%^Q0VyMJ0Wq_^(rUa&o($neU&{pFGC}+8i*7>n_n!#}wa3iY(e|_GXovEyD z2)oxZ4@5t5k!6G{w=jv@24;5lkoA}BTOs%7JcyF{jw1X;?hAM!ZS7`| z;@k0OAuodZT2R$bJup!=(1Bi?8yf&$&Xk<}GEnb48Q0x`D9qdzI{G+Fc}txk3~;hi z_H!K{OsD;v_+hu7<7U7pJ8pdK_i5qKw1EXV`pvDWa&{~ImOXdy3OE;s5Qqup$czU# zc7i$fPj+{~PN8iBYtHue`7 z^o)0kI}>T~8oR!y4P|E?SMicwmIc8p5iqJ}Q=J7@s6S-n>PF9GIWj7-%9mc)BF32M zmvZ$*#GG);le=$B66(*rX^iV~1l=9bW?J6lp%?4W{UnEapI>PLVR^$LczGp+noZyg z$eUSE1gI3v$)RjGw;~vI^!{`P9trSLEbs>BqXNDQLW6aubq{4(`J`zE=L#l_si8Ba z3=+!!DA#UD#l{Rg(~AVFAb+|^Q{4cpGa%$c4cNzZI12nlu&nwsK%oQ94YYSLTRHE{ zDoKMWBv^!~K~&Zc`xOEO3e?vF%mh>jvLi=$;vto63Lg~nkkbwPg}jTgsv_Vv#DGv4 z4lSC-@A73Lh+Z?iO+KTfJc@WAC5opM$SkX~DZQ#?RPgH+3&_vNKr2w-7p~Jg9t8q& z(k+RXa&u?Ja;E7f1ZLNgf zwW@D#?ink_=f8xHB4)&fNG?}{BFb6gT`@oob`II^R2J(+$AVXbY*Xw-rcC6v3f+RdMdYVX!)%=Ncf6**DR;z}NFuNk0)6-=!&4o`KkB*2M)smafmpebaTb;*tw z?OtMH?p}5Aiy~Uv!Ip8e;@Avqu~fncW(k|i8dlhedMxgMBtlz+1Ta zR)vRu%-qU^R>1u6v$)wBTV=@r-TRsUta$y5>es)KS_TrKLV0^4GSSt}GZ{YTvl?rY zqd&ZxfrYl2-}f|vm;k29T{v0ELs-pq^#ittpe_;{s>ZDW#MjF^**8E2#K<@H3A@?} z48l%s&qIP>_#*Fv3f<+_0(RfTa}5UF)`wo_<;HfU=Z0{vhpT_mK0D3~$BXi-0l$vL zxw=~e?7fNR>Uo2CAL8m4JZt>z9rCAN1Ag61L%Sby^&gsrVA%+r|JL~13>U9Dg!0>i zcK@n3D zH3G9BL9R-o0BnLK^P7l9@(NEKIR&%%Nz&kSp8JZ=@gGw>1+!CYE2@?i;pOANQl}DQ z1`3GT99RJA9L-ky9XSJj4e$S8xaY%TI#z~t!XN3 zNiiSq(1@I63cCWaJN@pDIdvpyv$@*H0flbR2^tRinvp(>ZvAJxgWX+I# z_Za!A0i`^)W#UEJ+Uf-K$4;;uxGh&cyZekQ9p9$e{Oq)YT3aEQq=;*nMNLFYVol6z zc{<;wtHRvHGhEkmJ$3 zhxX-|f_C;q_fc|vi}d51tVcaJ91^I6d{Ej+L`O3i8VZl&StabT zM?tsuQzEZYHy_cmaM2D!^BIZ-JNvfpXhx_S8}tGM-Oh2}aGr?e>rr`uo8-tB)yCdj6pwnvr@^aSuC(z4eV+;@#;12B_=?-tTqp$Ak-2r4%8DKWN(H z*VEs{U+2WZi(`z0+T&wwoX+A&AQ^+$2UU4$PImU z5r|nw2Y8C5`9W4mR0O*p>fYU*;?7_RLo35q5UvY9AlcTVe7g+DIFSp_8wdaH`d4S2 zuRet$Z`{!XeJj1ubE~VpR1Q0-x@#xvE9SJQHArkiV4b2_W&>AIMFSG4NhY7WaUDa{ zl*2#_(U*QHwq)n(jSJKzR+AZ773R{xzdnVNh#H12$t;7V-_JQ3=qLLE%vZ3Y=XQiR z#|b7oCQD8?cYs(MwP?WA5eJ9T{P>)tG*U;I$Bx&XE{SHcmgz!MMT^mv#d=0u?H8b$ zZy2G)^v6sy#w-L$oqp0=5Qv{?@Z*w_4j=opj^Hr1SxVc;gOFE%VECueVV~BiEd!A> z4cf$zWF|UHXvv`>IzXW4*2K%;ET#Y?mqVGvd_v-#IjsJxDR*N(ZBF0>CXV3Y8d1hD zcmT{LTSs^4_H;-sJSqYu2YFdF%AyTR%4Q|66zRdAtHWZpRgiB z!jWa}V7A94!2*rJY$L$+oK1*eWc^`Tot%(+LQnV_>bbe5sF4i}^n-(?|DZGBX@Dj& z>slE^J`S8VwF5iy-^c1pTY39@KJFG4{G1FZKYSJwHp1kZl5{3{-#j)e zj&--c@TuWBqbA40Xilr7k71jtMp!7>op$iFXu_eReDSF;y@@fa#gGH1%v})H{bsj* zOH^mkLOFVASeFf%&?{0-coXPS+x`N}_{vAHJgWkV@@}B%kC)=jv(@!__B2v%afA>Q zv`^aaBb*5C=;Ul**Kug^lDe}Lij5d|jEs>wG2xcktXa+G`uQPj_i)8XcCjd2ub?$r z;{bQG9>syPE{Zj~yG~)di)Ka%nI7uLuKLq>R-)OTS4K!zbcFQeRN9pG`rCljanP}` z5E7mx$hk4)CXcE+fe)THG&@S>mTQafAtIe#%jT)#+zha4Nx=MubWnp?!xA7MMuG)fxo}U=gwt9W{7JOo`}vsaa7a$2>evyYy3}yk?JGySr$9 z?RriF^gqbG9L>2%A1(cT12)T|H~fY(qD98*(s>$+Rz!f6NJCyQvo!y5HrXV!dPCt@ zL}4C6lT1@FG+cw8nH;f3lX`>=sR6H!K6@4ERIJyiFcgm?YPMTjwLRlV+dy}X{!_%2 zMWxvDv}%QuR?FBWe1cqyz}V|}z>7O~)=n8Y-~4Ke_WY8+)|7Eol=?ZPR#&@joU-Zo4id@u|JSSw4!<{;b7FS!1sdizt*ODdZ6D$yL=SK z?N_gi{kW43CKAvW^U<5ksl5F>ocb&vb$xG;oW|JZjG61qn#@Z4$2R!iHJ3NjT7(t5 zI(2N#!t}X8+?<}f33d3RW_UH`@$#%cU6dLUcfXs?Yq+a7eK*!W9a)32P*-hhhQF*y ze!7j2Hne8{wEf+w8A(EWY->@euJB2mJk;E*;&G#uc^j|-!|%-C1 z8W9PAR6RS@Q)FrYnV-g#(R#eT4A`U?SpV>VQU{1%6VDV>OCv&wi(b5dKpt$%L^SG}I6RFtDEe=7;Ax_n z;GmOtym^GQCb1}T)sh$lybjmDcLAmQuT?hVr)ti)C>*2>s(c?@HC_*_w=&gh%X&K^ z+6H6fwrynZ5mvB4`5vz0C3{)e{jNe+>C!>O;w40AKzbQV#q*miYDQga(@*xDZh8ek zNe=nRlvYUZER4P5Es{XP?$G#p{VOffY^&mWU<~zR8en0VDgh8{7Jx8Z#&4wKdH*eH zn*3?Om6kp87&?CoVl}=J`|&{wwt%Bt9ks0i)}RY&F(l^i(E&6lYWfEvMA7_GXhW0v z4~U3)pQdOmS!-k1(eY%h5>qQ&U}@U~RfSpx_l;g|m?H|P)ZrShD!c!b@*!L>z9{4# zj(UYD!5yu{sIPI6g17LP(?5O^?k69Y`mxhlb)G!Uj-waR=^_SIe(ub58tYLtTt+Ra zfz5)>h)$#N9QTY0sGuA%zp7|kBGv#ZQtRTbMl~*<0B8fwDT#3u>Wi`4WsMLGy{pI& z#b4pgTM|1N968s$X$V0)ts$mDWT(;^) z6)EPVubk1v5B}HG&Q$>XP3ytJF1lfC2?7EIOz=J1R%^D+HHn|!^Iz30Wpg~=(4bNDGfoPS9nHO3G^UCO~+4+O$ zQr>^{*^qVoKQ(gJZ=)#cO_LCn=+9k3QhNm?V_E((ed!p(7+@~ervmiKm8f{{-_8SR z>s?p@Wo+=*9TaGFrnR6)cW|1?8)Uiq5?a&qpuLZ`G@zYBP?Id%4(ENM_{54He;qOU z{7ADg2Zeb&mojy$hRGyeiV`F|6%yo6TDi-hIeVrH$|SA-Wt1_eTGc=Xiwc%5j(bPj z*u0Dma())+u&^{7IW{g9g4hhaee4ht#Rx4A?yJ{x0^=50ZUPo7e0)PMu+Z=aMw?&GC3J@GpMTcy9{X5u4gXPoU$#u*qrMvy5fS zSK(NKEo=H_7)1!=AiT@$@g!zjZ@Sn~SdlK2O5k=RAC>;xf!42|DABhvCq2WzGC6{HCDn*%?0fFYrl_pz&bTAfYM7jinMuL12=7=#D zLJx!hxDHsO1yDqjQ31}MBEX00n@TEp4lK?n8|Y1Gd_ukLh$hB_?Aj7v$aRRi0%psc z;tTS3P-DM30|mZ7i=;z{R0RucyaZB2Fj-y^ju|&(D*mniM9bL#Jo*XdS->*OC_`ol z^CzWvn<`Jlu+<{cGJKl6BX9r)92oP6YW{>mQk0As1=c;7fY(w-LPDi|4hptvT?I3i zhbGZfGYi2q^TZNnOG=AXw%?`sDhCE7c0W)PNpu333WMZ{rZcM^^7eMqG7#Ndhn%#6dLSxPZfCICO!mqblcD$C9anvdik2{RT0 zwstgcb13#ac6i3&-uSK2nX>W*kw-o2P}$9!w;dNcAEWi_C~tUQs`-mQ!q4R^O?Khq zY^I(WD`Eg4-Iag$xf2)T=9S*FEp6uq{t&qO8h*5J?Ry;;cOP7GlHa8iv01 zpy9h<>nhgI3aF~;wmr_f4or9fjs51J-OF*y8h&Kv=H86q(jOwNzkTmUAJ#B$c1+Ii zdZ3qqjEjFT2t&8ci+3BQy~SQIj8KY_4vd{2wu@gUZsaB3Z6ja+{{IT)1#1gg0aoZe zf8LChbz1pb{m$nr0q+H26BMQ>_;lSI5Z-Kt`l1}&=EY6vz`h?4@Urr+9Bk12E@Qc5 z7x4awTclPU>=Rc;godyJ8v#>);m&}^=<#6_44iE#jy0mB<@|wf9}s+Dk42JubNlAx z()bwY;Rlxhl!-*hUY%;wLy?<>gBv8}%4mOD>qRHiW7j*eDptCnkD6F)#4j{C6yMmG zl@#c$;vw^1mj>7-EPj=X`<5hmoBcT#|H$3I|3;Zd0^#QPL>m8~Cl?51(16%Sl>`}!HiCJFgz2xylM7+Q0b}h~!;>_EDGlnu0~BVdnl3W@ z>(~2!i#txq^}r>Qgz*6tPa{&(_(Ys8TImR>yK1I~;8OR^Fen~Om`Eluqzbk;sX-jI z;d@~2PsV^n%9lSud6OsJJmi7W%MG7c;jL~;$|I}F%U@_Xtt7O-XMo2$#$~pP2S=?> zd;OX4tjvHP8$f4CSh?B9m(spqhv+0>NjRwYt{)#PiHm%9kdc4^@YdC_`C`DO4=F4A zNQQRhNIdfsUSlrzc;|pYk8er_iYOH}&$+Y_{VKS37?d?0(g&C1vKNscf5+mfo&~Wk zj1!MFhm$})T$26aQJjwF9X7FNyp7SBQ~B0Uv7a518&}2PuL2s;bsT)ZP|AEimJ;X4 zIkX7!gr%V_(&KQ{mE|I;yk#Y z61HHCFCan@gf@!J5~%dZq>g1=AcG{|I|C?5prD3z+kcY*iks|^aYC88`OlN{9byilp;eRkJ8FZFr>Ib z1ak2|%K4XNmqQ?QMNsHyj_IXFmt>;x6aR3rpCb0*;i%NVVsM++1*o(CJWCU( z9skoPQ={9;Q8Q2R(>b)67@14xs*U+n*lWtg^-6~cI|s+|`( z*CUASMfquY;fymaK&mTRKu~uuf91PA0_gpzN|P@rOqWF?L-<04R^Gk7IFvgoeI=g5 z=Hi|i)uczfVSgM*y9Gz5(L1^Eq7K?ebv=21$JRa?Ta55cKk z;*sCq8_wr%+)FDgB@o1GMks!9agF-Garr#9<6EZwCqM7$=;#RfH8+RG{adwd4G@pr zD;~<36KgZc8wN6bDBKP(g32Q~U;(ingLxA-BN>4S;(%5~t6xvxaH5`D;os@M&>`iog zlDFXXFxm*@X<4K!D;UbHMlf8L5Y9J_Ov|VY<4anX*wI{OPAwq5j)YO+g-oM#wY{<` zB|V^Vc-%H$rrdY|`Xu>+ufId4{A!bPJ`>%}%sUPXK^q7=AZvu@x->~n@p>>G{0C!u zE-G?uHpq*^)G~?6*!OVQL?HMd^Na3fk)+|^dT~2{OK==>pEVg^A;dEmGGRuf-I~&z zst59{EXNCFLSP9^(|>|CU(00A5{6saMm}?kqe9&l?uqW?#6HV3d?_PV#WB>4?z^@F zQ2LLhI8lFxwenL&1}?p?b9y%k;#(*t9yS8)jO|aH{;`r$6r;F@=rW@A?nv zVjHU$1A{jELMp=FBQOi<&y&}ZBwY5yuMbZ9=IGi=+;n!sHBs;CFLnj zD|H)0(s8NMfmedYp%2*!dXnV+{Wrwo>T?3_67mkFu9wNO+?bk~Eyde@gcn!@HhsZz zD9GOHA7W_f&zt1!}6kPd@YKs))UlFG&@C>8d1DYZkY1XSO_c> z%5p9EhSbyNeYpMGVMp!xpiwX62_0)N3+)I|gJ!5qO;fYIyr{HVr+jK(H4*=+DTG7r zI|hJGTzW6cWUD5}oU$+RIZG+109vMgh-GOt1_6bpT~WQmbv3-5peRWWf<6{knd(~G z-3HMF@xK_eGpmACAOusBvyB=Ea=#6X&DqDZOG5Qd3>?s4DlafY{sdFOFSqUC9r zqL^>PKz8N+&UOWxn4WAI#~FnijV+Xk?gXfBDNGHt^XwGz*fVf;%U4*29ShXj5Y<=< z+8zN9fK91$=lX=4ZS;cm0mdD@(jISgh0cU~^PtBy z+LA_DCUsU1L!)t%CD0EN`Q-AkuZMIa&nR%>xh`U*Kx5h;Yc2bzwh_4(CEG#`LFQ`F zs0db$%%ZBO%ueP;N$0%6;pr7MVcf@5%g8%#j+_25mN?_16|AgG4jd#TfZT#ZEZ(EB z9f_@NHI^5`b7m*aZF%)iQKA)e=g{@-NmwJz-ju3qJJ?9^a1^fyU@IisjPcYtSX+Hn7jRS`5PYX@bo7m2X(zX2$d8gbM+%=` zaprSvR~jjibuP{#1;7e;_!{1u1`b;Aamm3D8oB?7tJaw3dz9s|KM3y8XdZl| zje&Ebs@RU??_L_v*%Kb-s7B!g#g=Lo+xN6Ti+KM5RdiDFV#^*8)6p~Zb+V~a$0c`&R>^z#WwT? zotuU|<&lU0VO`K}>x$e>wcNXQOgTo#VBKCg{r9kMdbPUxHz+PfFhKJ=G^Otk3@WC< zo7p75i%sG?tL`~`Ty{gwv9ef1VRzE*I274!aGSwGf_V|T(vt9CbQ-T`UqTyVHCLLA z(xQ{4J|ode#?}3yLBb7z1p_sg7}W`1^h6wEf8HR{eHNV5;n2y9>-NaJw27vUClyGk zO)Yw@BP-Qu5lgutf47_I8KqK7aih%CAKNz0-3wF%KzFmVGse=501n}!dB?2(Az#xV zy;}h}5g^b$0;+?^@O(KtYA(lMWn5;9%pi7nP5yFS`@(5wMn?Dsj4wkBJ17WEkk+dx zrQs9c-_pXjbfa1ZgL-~Izf0a!uV%N0z&`S~lHSYhM61rIg@*T9N~h+ql=ub=gO#L_ zuh!I9=+_IGkcEicS)bTu6R-`(cIyv!p+VV5jpHuI8jQ`*!#bAl+&iETqzS(cPbyFJ zzZdcaNX?+=w8PHW0(J}jvNeKQJ41dt>?>D(bAz!%l;-RL$Sw5ufvoipd&&t0 zN@mkudh80}$4i%hI?|g6@mK_ierGXry&2n6@Gw`iGc}iH@e% zmkbDAu4sy#$8{`cwIq9JOudd9T_A?l>{Q`|n(0R}2e);*mCLe%QVJ!6K5_V4MAuMX zt-T21Fryi;Lo>)hwJZ)fFLRN0eU&nZIoeeqFw(qaQ@5L7L@(|Y6?@n{~YAjvQA zwneYxZp(qvk$ks#I4_~oV&+bJ%>3}@FPtxG4yPH?qxe+3^Hh(r$Z8)HGxgt?yh=|1 zpN-!i@=L)gRqjgEJing~wdU)(c8zx9IVXAqfk}iCmpgc>E)f=VaJtEKKKub^>Ekyd z4qAvmQ1C3Q@KS}FXPNtrF^&nkRl#DlLl}YWE1h2Uro6Ppf0$=0;pf$7m(Ddi&y!HZrm!C~_`Vw585 z0a|EA(tX>P)?L*|oi6zZ!MUzr=&ZD--32r%&ZMXodYVoUL<;_>-;)cWiUp~e)}ena zwLGXyzt!UEt6Oud>KWQBLxx{BI^%fQn}sm7HB}!YSWX)$K_r*@V3lPY^Gu!QYN~%2 zSQZJca-n34eR7`bOQb`=iI0T8>f0?KV${SVCGfhAOi5pDKXgd^@ArC=EoeLoa|updE(5-w(r_!Mpj_8q!D*MuJc4 zRs-%18u4cXXSU(*_R*AwC_?)6KPV4N6KXi~KlFs$sp)fR9~OFEfcbqKAgm9{2np#6 zF?2M#953hC0^;JzIYjS1~fLM~9CkFebJ9{>|eut8K}_P1dt!y_oB z3txn<_h^+h#0Iv9MzrBSI@$u()P-G}`d`%Hrgu`j&Niwc0;(kP zKNTfB&He?{-_P^6Ie1O>z9P>2vA-Z)%@D<@tCBmTBojskmglbm%Af4Pg9)FzCA)#i zrg_-~II`8=ee+pP@;*BgD5HL?^!8?`5q)uFglEcO^EC2iL2CsYYxv0%Nx>eht;cZxJ6Nbk$%HW?&hD>Gi7= zd9nrZYp@I(^xVetbZsR_QZEt z>%F0tg|u1?Z>_p!h*jjX^nSpF9pvk?oi+Rb&-@{;9c|C73)B2TaDXXhJ6dU|BW=EZ zh>mmC)bPCbabn_ZU_S`n4D9KDl5_*uTP@xpbXMQq&jQbcqt&;uEoyDFzTX3uYV`Zb zS){n_Bi?mAK!v{puA&VIUFp`xcE{0mlD^C9rWsv1Hc{|P24G2T06&}0ixI|bf9LS{ z_;1@{GOg2i8~=6>)MNe$=KqseuI%DuX=nbQLGlsaFKuk`#DCa|!lGb_Mlqo7iCwVh zCa6?nJH~s!*&}Cf@1g~WQ9QHc48%Cu_q{s3Z>$)Q*^k?9&3LoUs(`P8Y>cZ6rxRHi|>-Lq#;r&=C>5a#A&Yr$SRFd7cno-7t}KBLqqn zgaUxWLR%LopD9m`-4IduDFSMWDJ~I#pi&ZVrtYvBiW5XNgjhwV`)#WAuRFdC%33{xAX0yUOdcu-BK z5-D$6=T!a225H!mi=GLCtyC`wM?$>FH@pZc&mhb)xAX&6j$yJ%GVqD2&GKV*-U#)(1%CeN{#*w4x^IIYxZYfx zr5IofKZmHDy(pL_K!p|1> z7C+bU#5FE%ZchIiz^SK`8P{*O9~ac}y~!`i#N*}hIjkHqB(zT~1k5uJ4kHdpXCK=< zNM9c>E@u4YiG@4Byg>n+wKQbam*%f6Pe#bX*gcR4)OayU$kNM7lVE1FTP}}eZT!S? z*gY2x$;W&-{BQ@`1{7WQX<#34)RUTr4_jtuJNV-%2S)&vd(wlVvS_fvi!6P7^ zq8}i^0J1l^{)0#Wd~U#>kKV69emOfci4Y<{5E4kli(o6kh}eV@X$T8>g-`+?fJoF} zggEFRQV7-bZ~MZS@IOt_aZB}?rz0zASZ(-A-Z-VEWnOVe7M6F^=RPf!?D9q7`r{@K zUEQkak6!AW7%*rC*9Z-FlT^J}{!*CJ{#vS;t}ed=qB^cxGQ(cbVl~*Jz*M#og8K(!uMSXw~XQWjqCZU`RvJg@yiosKd*eA$R$RVNqYXV#N zgG^wn*Dh%+oMwjgm5}!QWh1{sfdqF$eg!oChu@Q)43p6HB4*{u0f}Z|CRXK1I!;B?bWr5 z^uK)Xr7u7hh5I22SP81+j1t2fQHN*PgoyydY?y+PC$XBysC#OTY?Lb-vV1gj&m=4O z^10Oo&6~hM1yrX3jq`t?L@8}Fr} zXxJKrG~H0m*CZ3nDXxRx1gQcXa+=w754%1%MEQOav0YfJ{?8~}you;=WaDi9iiCFRKevMoO$S=WQq z${`b^Ge7zJXVNv?5K^VRqGUcxbP?6gpAVO28kmqR8H;uq3jn+!ykKPfQi1UfGawSi zOO|l)gJ0P`L&q|a1|fwGevqT4k1KmemmmH)2svtr9uUbZ$6+HwtUgY7^$-p))#{&a z_qm9k6k-(0(lmWy0p*i27-y<2&$Goy1%bzh3WAW?GKpNJjq4BM=l2!tTaYd!BTbli z7Vs5%3{LuyP4L$URm~Y*a>yNA7BGlf62<^j26mh;G%E!jiMmxgs7a*){Nd;uA*C2F zmL%`o6R7x(PPRgtS*nMyAfx-jsyd!}+%|Bhr>5*T1D*EH-X&b7)^Ho;om=G2z2`Ud zzn{FOE;QiF00!7K&m4N5R`^E#jn}h8f4Fl-2(^XBn2rPR_+l*cEiN%2+bjeqv?wWD zOA*+ZDSIn^e618)ztzNvX+6tq9W^l(mA)t|FI`=IU&$9)VE_Y0#zD3T#-EcMdY7HQ zN+El1sF(nuVX+Lv$JUZbvLT|qH&%v5AU7=8nokQ=L%-+fOji3_Qi1Aj+X?G!W05eL z!QwA3d-s&3F_+25-t4HT87hfrJ=kA1`c_Xlx!zo04|{VRoOw1xm8(5(ZfX2}Pzj{R zP?^^XS?+7m&`O3Q^sm;c?njYm9$;4B1q6aamR@gJpr4gyVi}&k5(<8Y_TJh|Zc`Jx zF$ru=UA3c|=%6d&C<&d8GKdhM8<_;eWfhZ*Vk=FE#ME|~e5sp{^!MT5`-^T0`O{H| zK;vhKE+z_w#0;#nslP^QwBYqq(|$kGcWN(>K$RqpYo+tLO5he;G7|IGu4Nx&5sDKF>yTXMa zvRY^_3YLSB<32zl9|>3-(M}B~Mg|WFVRRdCZ-(7%wRst-4i3U2$1j@ullsSi&~#0? z05^snY{3-A=Xm7O2GP2DK&TvLH!Y~jdA$UErNo10Y6@hxzm6#M!xcjej?O{NH5XKS z2f*{s&gsMAsUI|gR*g6s$zRO(BrvbuDz+}qZQ3{8YQ6I2sxgUgJNk1Eb!^ly@vtJ? z61LpRcPq6W#=3#UyK^wj*=&VHqW)cwcwCE>lZ4Mm#dAtoVqOJ#({SRrP~c+%sZxT@ zUUUhlpApdnbWh?+Bw^3|Yz6Lurg~!OBG7@B6}-O`Uh=Z>lH3!wr?FDG=J!QwMY5fL zV7UQ1E!ql2rm%rAf(_^|>>DJsn8DBiv7k! zWBDFc_3lS|{AoEEwm6rWqNgoR2|=~6H8N+2*+~B}3ekUqA2CP952|t}6rKgGKNt1a@;8FPbk6&$X}Q|5aIt+A-hz>4}2P_!tss z0dTxmA)Brkd<)i|z}X&{(?wl~@(MGp!7Hq_U#PeoccFo=tD$vb%oMFG`p JY}rD zY!@lO8hZ5S2WbV)RX+y?cI=`zfHoObhcfBT#-vo~NA0gI4+LfUFmb0E(1&Jb0-Iq~ zfR$TU_ES}VY82w;5+Pb2`z$x)Gj1568TXls)x)!O&Ic&7FQlmtaDq|;It!=+1N(5w zCF!(G<(WJrrRf+}2vu#v3d5JpuuivpW(nrSE~?p|JIU0<#+EpPT8+q98m6{f;jUb2 zI9R)F=1vC%LFNenLO^=e9x+_^R5&qnX}DRvHS9F_Q~7`Bx(6;nlqOBUg)Xy8UAAr8 zwr$%sx@_CFZQHhOYwLbHXZOs`-9Hf-nHljuQHTJ_wOa&0v8&pHrm>xTX!d|VxQlzY z=0#p2ET{s2v}%xl6eY>c?JWy<1|cx;nEfqZmJj8qJ07+;q%I15Xly0pFSfzCH4#>5 zO>N(>{@8%X%#ro+lhj>#lvczURl~oD8?T_zXDQ|Pq-lSUYI;#^ABD>Hhz79yVq*BMf%_mMdk%bMZL}5tQ zhW2KDWlb0Hq8>qo!Ai+F$^)DdFI%#xQWyTU&K9s!S2@De%L=*IU{==BtF;`Cn}!w- z_CCke+q9jd&(_%0V{FUFQ;IR^rIZ+HGpz~BAW%ir2BIJ$M@Zu8FoqcH5`;wczN}#~ zdi?9^*N0`|*dxIJ57=vPJ4Hi>tuR3bIw(VW#RUS|%^wd=tp1pnDuRwJiTB)Qqe^eF~BJx*?Q(=v8L_A!<(rQwMYV_f|>xC_KnJfVXu!5Q>1E z5RgO!M}1qU!N#S-ua9@kro1F@Bq8bfHx5}BUD~~3)D>NSJ{ra*31W~vS)g;BAtR{@ zg3ytjK>>7ZKvcpEzHf|;4F5UaPJR>BK5f5RxmC{_wYGWf?@p|eCY#A-)OnQMdyS!3 z^qv-}3+g?{BPNQwQO+qaJ1=uaq)?h>Lh++m;#NwSNzH{5s7kil>iz ztd-%Ycm`mJSVhaR2tB)$kM=`Ex=RYs2I{t$Jd*TF#-F3`3y+8tngK8WMUS=JPAGiJ z{@Mv3Lg&P%>Rf<= z7fny6-lx83nG4d`Hj@B9eV)y}vbcXZg#C!G$%Re-3o);4^T>Vz;b`$*xon<)WO{#c zxg_sz4t>D#-NwTAXBaoBRi$-i5u%Ax4Orm@yr_4^u=PjXCXAZuw(JFi&2v1?v)x00S#`Cv z?d2u@J*x7S%Fz7PiQiLRPP8AlNG)ZH*QGQp8XPOyYqdm2CyP9!C}us8_neWvOk(?H zOc|a4GM2@=ROms&y9KAnDS5hmM2mLpH0fK(^|WE>+JR&s>Te{l)3CVwM?P4kl7&f#%(Z#IdOrCs zNos_dQA!hh6F|pd@ESk2u?ikNvdh!qJHSMaJhV6;9uPS&`f37j)70lv(iip(Iw#J& zm@6~5wItwgmE*I#-PjkJh<7ny4}$e+iIPv18ne0#?0{WzP?IEp`C}tg^q~U= z5@>%xTs|l^sBuz$Q3l8hPoNAeD;|R8je38vzf`EqDmMC4qFn#|58kdg3 z*cZ4o9n%kwFW<(GR+6&!B+OUVBrx(Q{0zco4yN1gleaf%y-5N>R8-*C_c&GmM;51f zA5PS&8CsS<8e8uQ8~}A{=Q7}kHxnI^S9ep?do-Aqe79f#PbdyKPkr+8TNze>jP2s| zR4)bn{@hd0qMIvSc_nK5`rIzc(zp-rS8Z|zGFEwol4Eku^ZQ~21KZO{656Opsh|;w zB)V^H5P)_2EG=2ae|)IQc7llHVYqoN-W~aNycsMePs}2)f3R(w8K@Q@R%Ivuui9Q)^s_sokf^TO<6|B58Tx~E(0?~%+K$) zWO^B!ofJya_)JZ0oE5AI%HMiOko{>mV$6=n7W^C*lVuBRc?5CC!g>z;FkO>tW;efY z;X}y-mJg@{8!vc?F;!q^QuaccnA|#?*uQ z_axxynY6EbUY;-THa&=Zph0{Gf?E~;(lrOgbp+275ZNQ5&{VZkJwRF%!fgXwbf{eF znJZ7(rY}Qr3wuuAJ}Ku;@4nKrBu}^vg@Z2z8;Ov&(Ui-qudO`jlNGxkSJ*J3**Ex# zVfeP@QObw-eGk4YH*{Wyt2T=iF+d1A;hGGMc}55K-t2E<*HJUjgaj@Qbxdog5U|;-Q0TpIPU>MHn3`M|q-gw8%a9*JzgD4T7r&Q`kN|3ym{6JVBz$#ld zn@ZD-!q!>ZP*b29bCYLL2ec%)u17!$>~XXG22j9^wF?7G$4%T1S?P?BVFyG2f_ktz z)yLs4yefY-7EUHt?8#2GKNh;G>X-~_WDA5%78ui#0W1t0#<)lDG|= za!4A3<2k#o3{zoimcf(yV0JrGak$*xx79~UM57OF@iX7(2e<3mmCni0v_Qk?Tyc^_ zlakBmB%&mzV)%VRFdZnQ8?oBa!MS|bD1evj3-F6^z<<12A@dmy6UAJXI)_ke(SOF6 ztSH$iPR+S4CP#IxLNh@Hi)I_Tnm47cc+ z(^zu%VD%jjt&ZU!&5ZFvnPXrow9!`ROh@sw>UfjDR3svzu>`s;lb+)TKdFk+yD-FA zLa2}>cIwr_#8;`00n$8OdG-}sex$-jQAqSeBfNJu1*e7pDMxLRRn;)t147t$_w+AsER#wbkvxphAa*v zJGEVEA!n)p0qW~c%~UhcI|B1ge(StSYH9}hqH@}$0Q#}uTD8H)(j@fun}tU5sj>M6 z`idgMw_)Uv%|O!T@{;Ly>HcaU>&>g$nPETSzpRRclyR3U214d`urx+10`Lo6 z7FDXFw<2U=bt`1N9-kZ?`3bxV!6r)$aiCcLkc{Cn-#iP)0^jR>miWe9!{y#eU29;f zB+z@liwEO8w4cAM(sHrpqriU0Yc~Z0tT{F$=dD2M2&RX8R0XT0889=kL8^ANt&5xe zCd_GGe{-%`Y}28Ot*%k|rZD3Hi1)U=waHFc#HXee#lby4qM&qEoc?Zpa^GaNt`o-+ za4rKeRbZ=Z)Sj&o!2|8Kvu6$&1g$*Rv>_Mh8lf zl12w^9v2KHG>(lrR^WM;h8qcRqwdN3tkeYFh~!fP>m9&wBHt;(`I4PBI?L8oq%cq# zf9M7~TZqo8i4OE>NX$${VgW#wCO$6kV;2nS0U`ns2|ql9T*v_m8jWBqL^ZyCfZl(IMm63GphIfl>>m0G#VeK00zwqh<9$%YZXX(#=4MB3g$BBlz}P?;C(>M-Ra-c{Ts%J#4iCi|WWI;?4y zFzdJ6p)`UsG=;M0Z5S>r;=w&tXsAkh2&j=9Mc=!|vrW;5$nd-d6o^+yIzF#^jRqYl~6dtJ?Pmb_?GD?|>1hdy8o6 zNM|Np$n^y$E0fJ2M~c@lqP2sb5);OL?93tbWl25f5ssfN&E=~7wN?PE{yiJhWf@aJ zB@#Ie>jb9YIxTbZa$mZ) z(s6odaH?oxW!xwD3hwWEwRuPbl$!(yQ4(d8_I=1Tp14>f@@mG`>o+Rms>M8eo#dp>a?KwZ=*md2pM6- zw4;!8pRFBS!LO=rhlUx{^!2x9qHI(f%6p+K-*pHngLCUr3)?{UGL~=-{*%C5Dn}RU zpw99S@OMxbqf-Ep@yz_Ig-wlX4%dVk=s@Iv&6<)XankuL!zSHXS-VON!syftkE0v! z5zOVaqRDF&Lp>jw%;$Y6aOo8m`l}*X>kmoD=lG zeHBKIyU6fF<)u#Nr)T&G57+`8l)p)ppvT0K=fkO49?bY=P$Y3q)=3zL<)I;>STze? zOPY!pG0dAeg{{?Z;==elfyyizK*X&$s@;ccJ1~~|0a+qSim(b@c}Dq@^J=Bxp|GxA zp~NPDlWCq#cSBJ)k@A*rkOV>o(iKNdg1u1EW?kxyQe##YyL_Q!kEA^U`6qv$x0?_zd?9 zzLM_WX#lHbM0TtF8ibgg83)$*C9uD!2AW!?>d88gX@^qEHN*99-HD?_bsAB?%exS6 ztZr{oMh-KvX~-U57xqnPK-5oraCR5_c~dsAd+u~jRuZ@Hw_=?XK%zA9iQkmEK-!!I zO$lY$UtlR-Y+JjFY1YH~%U@bWD8}vW1+bQFE@4D4d0FXI)`55`4Sx0&Q<2S$ zkJq5u)W07W=eM2%rrIC5i5#mdMprSgvpc!a^uD{f*40A)Fmm~LyqJI6em^{(6iUD8 ztbV+lIA&8@gbY#SD8#L&@1Ax~g@6rLhgevswl}pRwOM)FKHQ%e+PJdsVNYXU{VZgy zT;5Lhb7^0FxA+i~e(vuc4covy7qA_Q^2~fZxVEtD9Zh4;W>`=0u(_cjlwlu)591MZMAcii$?b~ab`ocn4$zyG@^ ziH)MeI>T&EV8wC$^?D=Pz=jfhyPkI{uaU%aUVt*$^x9)fD5Ys)Fln&kQo}f+>r8O9 zu=TCnK-F-BvKl~D2Bz+-x!RwOwcf4O+)J$t*PG7V)4r`%^2bRMuVB_+q<#Lz))=Sl zshK%?{)Juo5DGk0RD<$P2>~#>#aMMS#s$8l@IJQd!TxQgWrI%VHb)UGe^S7|!y@J& zB(SJ<`9zLzhzXK%U}@RwIx`rPP;*v#)?5m5Zh3sQagUZX`r1YEGrij+%-Zke(jwB zy#hdBHaBOJqBkXtC5A_#3%0OOR7;q$VmsI_q-ay_>^j7?3Ax$(3=Sp970uE9F~6 z0Npx_4eWN;tDa*YkxpM@1UO)$f&*-q)r|4nVV55k z1Sxd7w*-g46q$4XUqUuFR^7?|6aj9eg$gR7MaVQnX7XG`gxq#j-aprU+6O_CLW&r6 z4`*iw%)?8p87T%;RuE~HCyH4x(l-0y`FmpJep}vlGk+$4qpoc}uhrCP%*<59U3k3k zEELZ~V*!g|mkW!m{V{M_ocI^d(1HgdvZb4s&zd#@e%pjBzD$I>n+D16BV6{+-|k^Z z&sT^koIlO=0z+KHjoE8;;w7e|z^YlM5bA4Ox@t%X*f*~pHMy`gxOEw2(d=W|0NxCb zwWqtC1oi(ehbjm%{iROZI_n1LXZYLiFqysmY*I8&DCX}(S1;X+K6exiLfL52632L{s1)$&tb#Y>{O4ZTJjfqX%<0ZU z=JVvTFX}R(^OXXm>tEk^gUH8&!8Sv8?#W#`e6#98?cJW?A{A!9`3Peh*BxWi`HaN_ z&=v-vFe>Y(9knMO-Q5J0+A}EeA$9dFS*gbU(-xgo!m5Occ8A)H@5!n?X=%^}nUr5t*(jpfEp zbYAkuSC}TOTdiJ3iyOvq&){D37tw}S0|-Mh$C&I zRW&vz?dku>wUDIF5?1hE=zp&KCHnoPv!5fd8LX$k!G15avX$iPBBJYk>H3C%WNQ;h z=kmzpvL7>BXMI{{%}ifgaqg+6!V)~Y!KA*V6cV1~ltFbaDwkZiIcBs;+Eml9E+x<$ z)sE`(MyL&X?7VuzPTtsX+`XBlPuNm9k;zy08-K1cy!o3Ud$&A+k}I$^vdQ68RLv$k z!ta`AXmQUvRSl73F2jO)R-Ag{K8F~sFRjBnX#ndo6bS0T$4r#=}?)+w3mh~Cm7!=G;U0q(2=eL{MA zx>3*soKRbWQTSqYk>uE}m=LC<-8TldEDPhLRe`p)qN4SHCOwOOxhSCJYixCX?ZB$~ z(yhkNDeiI+KV7W-OzyR_3Y!MwwMArjBSc+xzpwOwM~y2m`Ew!_oAWu2%safY=&>b< z;DOMbxH5<*ksZRyGwaVvK&CC%JPVSEHrL-tX}=4fQFWH7JzHx5#o;e>3{x?v2jb=& z9fj<>@vEvGaX#Mdbq_|fWBQq0;Xt;3ldZOUwE2Qg+`1Ls(Bwd3!VGMIMjc*-*ucFZ ze-T-Bm|4-g&iLME0yLYu1~r~sh#DtJuXp}U8H6jAn(7ExEkx05?ySM1OCNbdG#0~@ zASrnj!AGnG3yfl7LfVrZ`FTuj|;v8+R?$88iHl9#NTHZb}VV|}e7BV^8 zXgPOuKZ0pqK=D2Xb!NKV`aAh0{k72lw(u%|^3ahV7Q|p!M1v z1nGHcQ!iWaGg8)ZpS{L8V&->AVM096#YXAUR%NkkeU7i|!f57{Q>t8*Vjh$f5jG}x zSV&YSFcKsVW@XD5CU;(l&{+XsAxWEH%hd$&hSB^(-KEh1PbyA#DOh@CKo}*9qNVPr zvMO2T3m>R9@lF;5^HpL>bwp_kYAQ3Dz1<7tKh-M@4IwoV8-LbKgE^!SVe~?NOl=^9jOcmfqC)t!I`>>9!8@+Ul<-OYv?c1-hDjs(_(DaU zQ9}-;InVY&V0@CG+2Ip==%hQz^J6}F$K3;@4g2h|$d(+^@EFK~$M32OLOs)EH$T-m zD4JVepXZH;chJ-$L$kKEaejoRyXEQJ0+TrEx!Np_8r0{lQpDwf9k<4Jd-IsCZwkcP z9#0OB#{%=T?d&9nh8hhXcia8Qi~+pxLe2{;<7+6Hdo{r#p(q7JK_y003y@%h1g;5G zvBY~sllV~FSV`3Lc*;b`tk+IY7%TO|h-2padfo^oeq(UvUP_zGy>pXCE!t^A(|t?V z^`6#|oSy`cF?d{EGm5#-OPkz?KQO{9=T>}6Ij9&s01Vc?tM`x)a-pdm78vC7b<>68 z2#mg-OUK8;pWFdPm3uT@CIf7JO%T+^jkts?87jw#?ER;x)gDQz#8s_~Mz z?jTXU<^t*4t80EU&WM4qlN^puki5RvroJ zGQv373zqLIBJ45g}~Mv+7z1uQw}(bevNe2%T(n-<*hnicuq@ zTrp{3RzeI+fy8cx$ryo5{zL)o*2+ulS)Arx+yTB#md@g~2dP-8&wF9HRGrKuV9@G7 z7Hm){lyyZTTG=h{=z~nk_S`(F%>Gm^?fUB&HbV?W0+T(iV$f1oG1~Syh+8@nCd+Q)WkjGomfkUE*+& z=Wpvl%IyGe5gB&m|3t@Q+>N6Z{VZ5qkr86Wl+Z;LSM(_v z+P)V)&|rFwmwbzEs4!~RucrK7=+7i_uI@}HGNztPXwgN0nydkPdaRt;J<_&l&;&Tn zcEY_T@Qj@&aG;jZYi}xl_4>5uPE9?zAb7L{9qG_BKv+Led)mK-`E(=k8s_z~{Z$a6N+L(_L6iZC{YbK#FmKO| zre&X!p*j)~fi4OQTpkkNrG-&L>%|0vp6H1305%iM591;pde(K4z4fI&pfd;*10*Sq zmT{#l;$3D;^8Ri5XFcIB{tr2T(6=detc$KWCAqT+a%EVu$$s zg{QQtf?l%fmWYPxHsD$2DmIfS9$Yf#$o}v`Y3Wf1^s8S9v;%G1}i2{0!6C%VjXzH^jvu9pq`g5om1+d1f%jJ>`sl#EOez*2@}rBZNsQ7$X3X zzGa8#-DK9$%IftbZ6-{1s8ARfsDi&u@LE=rPcBjuR*jP`_L~sa z4#M{shY8+viE)R=2TG6i(nkwh6il_BFNWRxLcAw!u;sTVWQB{lG2UhMIm{w$9iBR4 zUqSbu92q07e^EiPeLw1!KEAaqw|94&@M%}MQ^YFaUw&TTwCa2oY8O^}-}-R7Mqm7< zwiH`YNgH8Hs-R4|cK25Rm1U#=RkJL!5V_+~H-><{y7#Uv5h&RH35i9WscEhaNHDpJ zRHpDAL*`jL>vq1hOP9%HpmegsvolI!QW*Q>+9M(^cWGgM-$N&pIzU@qWe~^s-5P5k%Y|_qR;&Z3J0F* zDh%O;@I%EjOb`vTI|mZ??S5fIxB0q#*LnGlJ*Jinf%e}{f$5r6l3wJS+mMJxcWk?_ z95dTBhx8!n=Rr(UxicSUVKwv!%sJ( zJ6L)*SCk2Dz4iIVbv90zi*+)zOQ?g<0#mvanZkYnG+-G?CFk$S0@X>Em`+$eFdX@M zHMh924swNU&bw^kjc5+rNT((3boa|PX>J>Qe*&5oZoRg1{(9^*hmBCu$oCaVFv+Xi z1bJT1=02)v6ioTfU9x94sHW4RL(eL52IUwc^1{)q+*JmS`| zP@sz5;zpymr*F#pd%yT*?2?soD%9b7DxhwU~(VaNF&_y@*xYn#t z-u9@O!aQ>n1U9SZ%ir*ku(`FML_r7UN-`VIv8yqgd?v)Q_vqR@x6^jZ5d&OO>M>W% zk{HjNagH}Y^j)M8^388uR$IV_nH zjSI`fPvaDYB+L#jf>4AL8Yi&QFv!HF$uuDAV_+B41Yh|r%*ats)Tk6o$3P&)cCc(` zDw6@q9y+{Heqt*~Uc=o(AGA ziA&_mq?wOzLdHxIE4o$T{5%f+sniaGZc04sPlYYW44sM0g+-r*Rln^J!JhTKOzk|B zs6dYNh}Xw@8_9o0619|r4NA->{18AY8*8Pf>j$BKi_krhh6&49{wb&-~q_^(rtGw0;rI{S_0acEaFaye3z32GP^A3y2dH;1guZ=)hQSy7YnHDq@tgTwIwthioPko zjlZdUi8C{tgT2d(Q^x-2BmrP=Z~xIr;$HCjy`5Z0jwhqHD5^b*R=biW&(vLq-zrd1 z9S136#w#fw(mEeTx9GbqEQ|EK>n+yYZ91N`Gdp<`H9iU3tsZR&&MWMC6AXE?C50qD zR4LO*l@Th^5V3>rbL{h%Euz4Kl6)5H8Yn$U3GV4IP1uta%k~<{@W;ldXREG`&V1$-zX5bF1GT=6Z}S6prQMQX*VlP;|!EQC>> z64xT3&Kr&11<)_k21`2G78uA6Sq@L{Q@Quds%78y%l9D(MV(k!%$rnd<1Hof#XmHe zWY*K&hT2&KR8o7~eADO0xiiPy-&A{tePH*s?@1#%FDg(yUd^bU_U7d;28)e+U)l(q zB`ml1Dzx?!NOnXUu^RsoO4d#_Gt#f?a^o%C1ic+kUR)jAJ-6RyT2C}-E1?fHEyL1q zv~_Lj&?9+s{#1tC&$MyA77J&ItJ z9k2Ch2O)t@H#&1A#)a`W$NSy>XvWPj9Phv*#yRBD zG)S|9y&z>_#mEUQb#yW@8ZwGNHL+xLsXX`GNJb{;hrHiq@{3`=jC8>;ub4r6%{wi# zf?`{;;!7+t$p8h%oSL-8%YMT!P%DvHoG}Fzj2G0mT>Jw#A-I;|{|9hNPz-9d z$oj2I!RBgp7Co{zTf!elxt)WY7}A#Wg=NO04!O(4v!qXEtxU+Kg^goO@+NBE32OZa z%&KQ~3)7goMdg}ynvXI~o@5RBxh`|T3rXE`Fr3z(JL;BO;v1!B{Qm$><3E5C$PeI@ zPk$k>neziUndScgPSHPr)5X64P7*(W)7*anPP@VvL8k;l26ufTZ&ctS)UVys20UV< zVSp$TNAo=)jNl>j?Q-zmMH;HXa^my4CsIx>u;r<8%zy{c21`KDv>ahdR7#?iz^NtRrOQ%AcZei*F zU6nu=z8_|N;S@7NkP_hzZ07E`w=VXU2%ZU6ph;qKPTXl^hBXA z4(ZlI7sLZ&i0ES+niZW~WX}YpV5Avots^ZZRiP?vLQ) zQPk@iS4DWa67QGz)$tnC9e3Gxr>jjKiZ`e9dN;(Y!<|^>p63O>ZItrUA|G7&Jm|QM zF-#gqT9Pc~wI!7qb6S#Ne`#JBma;%|9$DTYCoIK973}VO(P|R?wbp5$z0(&(> zfZe;t#6&8-74W?L`#H1L%yK@&?8SX_&R)U&6xqc(HQ0K~jm{1c=du4Eis>_YD#)Q% z!+-4eL<94hm)4PwlO| z1D@|zvLFBe($N2(;;5`=|38YOvX#S{F#MOL_h8gL2q(GpoJ=G~<_NC8I&TEw4{VJ! z2lxjHYY_sIc>jCLM25d(Al0l`FU4;?*~I1AIlKM59OvCkOHQWRB}ko8!kh%l{rl;X zhH>rhw3ZfS+kr8fT463fx|*fYnpN$xA_|33#2g!$z&|ffQ7Azp5~=JzFHeMA#fD^I zL5?L0gm+k#MtVCrCWW%CV}A%q`5b$Cn>2w&PTXE8AtCM)0_oW0e!9pr!}>TkGVv%@ zl~l$B>f|`;{I&f$gZ=_}!yW~;TIcEl6D8`$q67RfexiuI9@0@}vg2A66Z66|)C+AT zSXKZV=(8P5EcH{x$yb%Ny`^-uqKUa&MYib@7 z9q7uG)5-=SrQz&z1T+=58?_2J5zX=m`5YYMx-GUqWwsvGmg=${Ov%unho}5TYRj2> z^I3rbHE6Cdf4+~MVC>i5QvEwy*B)MNjsz7nSnfCbdbWQMDfwLxc;snuUG7AEUgEn1 zwzB7E!to*beP8!aN1kyXNjhh>wzEC+G+d?qQ-r@(q5(0$mA%ymAB zcz>J#nC}cD4q^SmYh`rmU%B3l+=wZ1*=798Sug{3Gms64A+b1nR6-DQMo1xCrqCRqg+i)2kZ$)*Gql%wLYWiHrZez7)bDkpugisjv zlZ&{cx>FvcP<_*6MstR2%tX6tfa=j6(YqP!BC4XgN_Rkp zuzWsP>h_(tk67TAUbhnD?B)=gh=k66=4PKSsT0cR1BwHZ7)eU6FTPtB8M9O-soTY8 zn)m2Dp_nwNQ$~2^|?(j|! z5lbAeUco1Ic~2;Q3BHeQm3WqC8@5*!-uDq?n=;cFF?FF#*5X0$`_`pE$hRh@YBQK7 zS0u4%8?Zwiv2v6-)v!Piw|By=y4j%%VPWB`5i3C-6#`+7dHw{Q4AzMo5b;%#?K-oL zg<HR79j&|7+ArrGqGPZ}%rIT87c^0yD_ z%RbNPVFYM)kw<4wU&!5P53XWSM3;xgymZMdRM6F4cFcL&9K5ubT{YXJp(k%cYfMp2 zDJhq0F#rt-znQ}Ccf6tx$}I>xD|->}P<8#zUh;;|UW6HRlDH6A-s%zK>KHj2skuUO z$iVQjYNR&LRycPCYYR_a63X9p;aOFyISYT=IM@0KVRUL+`Rj5y1;gPp+^p97z=VnN zEt28_`!jvn4ccA_OP11H8Nl@3Z6}?~^F3Y@)yNe-iL}wiy2s<4S2=5KUPP~S)t2Z? z>HGnnTi6pX&Vgw&Hc@14o((S3M%ifXTIaidqnYYcQ)RsafMY+JaJ9v!nJp4H2lGrkab>!+G`it>v&{{}f5BCO&ha zb=xuc)RD-wXsapQrUrfeI(g)zbU+X7Lf7M0(w5v)#?kLf}wX5nz_W#na zYS^3!!+XPa>nC&(#!66onae0)fl1mzG1p}loUZHBxXMH%S6R)SkbZY=S4>iIDZRr7 z{^CfsIZDq=?d*72k-7Ez~ zPbMT4g7gir$^g;bkW%amY`$f5hGU0Ea196+Hhg8+*Xw(<74UOp%;9Em34Lv{=Gw8Mxx;U{ zk4$xDx?0i7Vn}NGoXyN+wz*_ILi+VXuhvY)Vh>|Ou@!}1i=(bl({_JJNGEtovU$=m}5!ThwE=%Y<5?v7d)s&ssHsMh&9-z`7dK*YH~>d zzrui4x`*-=@Cj8j7ZAYWn0AoB+KGSEQHcmpz)9-ju_@_j>KbEnNs?3fxnRUojnnD# zA9mFGh#7jQFd+p`3#IxU;Nj6Bcg$qX{)KwbH8ZpORp-L@^eK5=MF0Y$v`Zf*AB1X1YFbGyDB*LJ>Z+%?xJ~Q-^ zS_4>V@4C#(`fJv}HT;N_n?~uX?CGIxe}3u7AqZ6~~6@7#RWXv}h!U0Q!y&9eb5_s_G%?(fI9#p>=kTY@fEb{*G) zVluQae|xo&4`E{MbhT>3E_tC`N8z%Z!imF+D3sO_@ze*?ED169pTEunsMUP=_>n79 zs(T=4cV)=LQcFI6{S*MZ9I9k^#S=F-3VVpVKtZ_^)gSdxa5z12LR_wHs8!sEFVmjv zba270;{=^46p8GhG{Uuctw7_Sp3{(IOmmR35G;>%lh9J6F|#buo;_vL9o7!MgKP&( zV?94ndLe_S(C+8uvan3`iByi#vx%%$^+unP;mDuHD^meaffNxJMpW(WpnNz-$f;S@JiVXqPI!#SNO6*%?@r2}?@nmyo0II| ze%iN7M{6(PcbZ~eXFtiT zeVSO?ykI^g1<9fiJdsX=H&1~xPKmTekW^y!kXT1p*q7*si8_8JKH#AgU*JCWs6^>d zk94Dh?qKl~!at@6P@bJXIeY{?8!IKd_FL6MH49xLY#;#pQ@_{W6^(RoBAC}l>q5+% zF40Sm!=JMVISB4|Mop=|`gCmxalK(8KpO_e3&>&JLy;1$a8PPoAU}qAe zo{le{BJMk;+;-E>dJjqHf$cwmWZjBXvt8jajp5dOiD`M)I29Q>co>6C?k6 zZ`$~b=Kg?$Q8r*}*0fvR$4m>c=YeP@`Y}jc!N6?BU!zdjjjs_jih$!2pDb8O_{XNp zl^CY!mq6udfo0}&t0^!qiZ9YQk3dKuD3njhVeQnte&r+=6RrVGVdu+`-qW}@1LRA1 z`^?947cb6>*S(7&4==_{E^JEGSnrQZ^R{H&40*Ms-#}D2ag6Ug)*AFGe5pKst72v+ z(k-xrqCk8h{9LfPwpYCg#J`mTLPX+LMgPFG%q zJ4XLB>dmt^*EQyj94L2$mpLUAk9t1nl8LH&K3AF06SVx#&M{L z=-X7j0^%`a#s5)I#*)q5S?0-E9mIpfr9iv%a%(@5OX!pOr;lE$8e1sST5;ffD!Kp8 zHX_b1m)pt3Orgn)dUb8f)EhF;`)HoN%`KD?U~sdDsBCb|GS8a6oMu>Gx;8LeN@uj| zj57P)o&`3>xRhx^GybR;xL!*EmaGxJgsf}?6+k``nV3z%F7`!y8jIA;tSZfm%3!*v zNM9T;HY!t5)Le*XZ!KFSlF%ww3>mP)`lfQ~B*cs(kqT^tmRjL5BukSuR!e(v9-+4Y z2)l3Ta-I$!T6DHvSSAl9f7)_aa2|1j$^XD6AQ z;)FxdMV=B(h-2>Cna?${D{ydJigJi}qP6J389>1kwY&3|b3m8RC%JS8(2e#3G`xI< zB`U;B&5q&qk}q5v9f@@2dOi7<`?J1mN|iSAn!7^aOjGlQ?npK7p-5^OH(Ii^(GYgfBulOsAc<5)RpL?UZh#IpHBNaWeI=64)ky})Bo^^QC5Ky9n6uiQ zRBP_RyPxRK)0EJ>EXFeDN+I#z5{7Dp392#l20=L(J%_yD|tVXfh7uLL$1{ug2Iz#Ry{ZCS=f zrDEH*ZQHhORcza~ZQHhO+sWj6Jy@^TboZaQI%l6thLx^qI8JyyqU!_5($o@LWUbRK z?Zs@}>3M!FiMHU1)v-rce$Zv1Ns+eo$GyB36pJvm^aa5-wX(?G%1YHA!Tscbv)f&| zKbhk+P73uO0H6pV%};eymA~&=f3UQw+$`CAlYqx;sPa-{+h*k^I0J?b2VfK&)Mixy z$|9C)XOqnEVx#rP&wrmimeaOj?|x5Py$t`y+2eQWP_q5c0PB)&vt$okAe&cM|-bWyz!QZ)5 zkr$_8R{6(h5lWO1Dj0}}v3L=ucQKSWOd_Xc{D)A5ztdqYP6eP>u|z~Rw_?jo;rw`+ zBs9=!wRkjle4x3&R`nqHY?-9+HbQ_rgf>_qIF5dClLEF4`TYANYzLWdOe7lhg@w$? zf2&w>OhmMCU)A{Rn6Qc9snmlrK%&G5j`1bI`LcV`@^H>-XH=x7{r3AEa)I}yVO(;X zvFo8st)h9!S$~I+cPbs1(MbF^r-a@CG+YlRKJwZlrbsaoN8R^LK7kYfFnzSi;5l#}HRs(d7=zkWCnHRT8dFCVtKX2fgsI-p23VS{u&8 z@mA*TG%X7VE;D?fpytr?x?7&AFI#$fqE6R>Sf?ULZ850huO#~2+abNVT+oBa z1*|rmoz5%BgrDZ`YVu$T$7ue%YFd{VE}LbtuF>7DU$E&8P`_SC0@mMHI>Kyt_CEz{ z(B>e3ZZV~3^OQy)vBPmbehyqdV~HV!uMjGv4h5oFcv~4yHLnAGwJ4crI|!O>2oJdQ zEmIJOwuwJ?88iO2Nt96@1TVhQIUJd&4%l~_01SLs20FV!j3|BUKvx6tV2AjT-9_Zd zl%CXYL5 z*5aD;M?v;4^vVqrq}#7v$E-XbO(5Tne`N+{OKboJZDjy!!CzBnJ&aNEIqP4KZ)z|n4*k8yP11D~QyZ1!>dE(=sq_Dar{A$D4W6F~jk>K$iB%z#4p zSX;qq!HTV3lCnK@k!Wu+jT;vP8%!e_8A_cY6#JOeoz+9g_Iy- zU{+4PBWW%J>0oB?)9&W^hVuY&v+-RYai>fOhyM-&OCmB{!;2oHdNQDSx!b~!ko48y z{Nwz%d0P_(eI76~>-pIC>YS*9s2Y^H{Qe`u3mt4MxP9OHy-K&gZTsV1S)w0=6oaefrAbP`0yd zb68EplrULuiU2II)06Ozyvv_Hk58D%@19}_vjTOLPC)`#)v0cBkFiDAM36Vo*!SH5 z`+kvRaW?L{F|9g4OVOEK36oQSl1CNuGjA?-oXRZT#*akAd8`-ojRJ+mW*VrpcXyD$ zAR*)#&85}u{_M_hm%4yXZ|4lgPJ<6Ol<-;IC((RJiXlN37m+65V<=DQD``#N> zl%Vof%><4o6=RV?!Tbt^V{(DNn%K-h&D~aY|;yRMVg!RM88fLhd>8VV;ZIETtc{f?1V?3OU zCdDvvI}I-8n>Ga(8&U8*9}Z&a2EzBGsrL?cIg$Im9mRYt^uvuGeSCAS}v*P8^(46}tqWDtJ7{{fQ*lbS2M3a*q)q z44~RmB$7>eIyQHytct$lBecsWs61Ae+xSEUW)OQ?=v2LibOo|VHs!d8A;5-%-ng#tXq|=M?&rt5 zuE(1aB}M=JXfLUt*){9(W*@g3%>-xZDoGlUcqiwMrg#eLLeHURbzt(2V5asnN)p`Z1PK-#x($Ov7gz#!UZ#;W(BFL18m<8uMC4iJ`ed&)?O z<#@6yzmmUkX)Bm|p&N%o4;<8$YAbW$-0bm&KN&ssJvw=bw~;bDgM+EurmRNd5ipju zNo$Q+?1PZM#|~)0UwiisJgn(+SzO}HrLr=HO8JM>Aq7CPQ?>fiv{K-?;DyA)#u)+V z0KjabH+z|*Mx;l@9jCJ@g*xR2gh{ZYq*Vt(yb}Ewld7%}2SnYVZd$Cs3V;mctu%fq z_mJ%v)wza(v>&o{$zv&D_oxwTDq5wOSZ0~AE7r7FKW!)#E+MxB%I0WZ84!0X^WDUp z0MnEk7#w9&6m}9nbr)f?vB?6?m?Ri|!?#+D=NB$xh>f0H*||eR&#yLvZCx>? zzEmRd(f~zhu2w1&Y`3xoVhR4J&Cae`ActMV7RFAFXP+C+jRSEsjZp z4oZjvUKUKYSBqK#^w6p0^{#Dn_{FNA*&}bAUVhChE%xktauP#FCu6o?259JHCWA0c zHz&TEyv4ai>Qf_`?3Z_Yler%1R~P=(41n&e%+ba9KV0-yg&X*liggD=CUiUY zE)Lr^k}ho)Hrr6_gRsr4Z?V#o4yH%L=Dd2#_Jg(eUJ*b~?Qs(!3 zL=?)Cu+WobrHDixJ3D3bZAmi*VNF=fUEj5dCDw7~3%AU{MZD7y`!1XVs#t59jVQLY9i!Wg2vZCXpV5ByLVL$^Z}%U(M2v$o;k zX}!gZP-Tf>h-QsgU|0S%GaijlT_}3fAZ4HXx$tTvZAm#Uy*?d(IyYj*?cwc~woT#K z@vrVoKATUeh}T|0`VCD5xqb&c%P^csRV1wsgZBaEHDfsd2lFs`nCP?<9a&5kJNs;vP6Sa3}6x#^OxJ zYBg8q$VAZ>X?Ts+hXR|IHxYdeY(o- zYqlIV-heMTq{f^MEj-)tJiU<4KRN^Q#b!1Mgj=#xpI$uRe@N^=)8(uqx5s9?5Rh~s zUVMfgCAT1U^U;{E&~L%aN-k`=ZEXDWI0Ug7B2zJn!N$@^-0(Myvo5{`Wm0o9ULAIH z%WO;=KIJG$k2dHSr}L1PFINrOdE8!u81LO$I42U>t4?hOES#ETZPcQIGyzor!t!jy z<(pLP(?EtR54uMb@KN?`NV2S^i>@jI6wcz$HpplMs`?&pb)BHfoFf9M{qMVz_1W_N z2srhOURwthWRg#W9X?SGaf zeg_AA_y5|Ms#LUX*Ts;$f1#9=BnrhgnT3(!vt>ZiyJ|y1!}KXd=2SouW){w7!2*^a z?-}d>{L1?EB#gY?$xX-Wl}*E(&hIv#traG+WMp;oob4`d?xI|j7nwX%xHff> z<60tW$uiu-$ukBEq9=)@A_@luV(Oyg1yK#NI8_Ie1uaSOq0ITBS!i=b<=9bNb82Tu zKKiP_api72e)7%$xaOt5LdNtpECQ0LGh&IxaTI_e>B#0?@$SSFzuwX`s z{1sLk69uDPMfSV1>sXd@4HV}gaV3qSNrM5hsdMy^I?m}u32Se<&M_<}ylTnAzPa^A z3KNUzoq3{`>XI~y6qYHZ1lbFy3}V}222&&lc5kDI3VR4^7R`OYF&JkwM<2YlV*jE8~|r6RnF*=p{)%ys=0>8WuF#mmfn zbd*9{!vZ|(wp-jhm1sb(2b63m!B;52(QU8m=dlFU_i)JK=Gte6&+MC91qbD|Jei_t z5;R$#M{yU(qIo_9ZN<1q77`hipjvz zd>Em;;5&Zpr6hv9o%zss17vxL(&Le}*6*lXVv0 z!ovPkidm{GV?j}#x*GYW?Z1gf`9jI~mX9!tfX%{R#C$UUVW&0{W=Nn62z)l^OayC= zhb}v-@EW{H`vlV_HwQl2v&HF?I*zb#A5FgfO>bXJF2X99)&L(<#vq==!6sb8`J_St5qbK(#=T=2eObFa`|@-|#FA79X5hyUbF*CgQpr-qh#qMqOgt<`LHci%5vC$Xj#@|?<;-@_5JZt}eRb6LfDG3qJlxtTJ= zFUAE5+mW6yL@D~M98uYr4)t8-Gu!xUw%JTimP|@zfhLl^sly8zzmr#H616>jyzC8n zcl%D(=^}XA)6M)G_MM(XV%yNSum^|u=sn0-`1jL=5Amhv8RxPs9R{0x;jp|}YyE`- z#awV->hj!OSdFO$yWVx+P!9ZaZsMZ5gwt|Lh0^O>vLiZgX|u!3J*-$gBmXeer-ZC25;#GsXx9EoO8YRr@N$F zJS_fbk}EQ9_58YAF-1{($>Zbw=IgAx_+Q<6;=7G{Tte&PLdSw4M&*HL4cQIX{X*j5 ztXx?n1@7YJMg4LU1*3H&jl+C!a=B6i>{gP!PMLcQN|AyR6`A_*QP#Ptyb9OR$_ON-Kdm))IFwbWOxaI z`o|Mt(3mRR$sr3-dvBv;`g8r_^U1!(X~5wOX(i$hJ&HxYXhjX=A~fzu6y{%ptMads zX6$q!3j|f-#EtF)Me7gEaaW?2^LWYIlK)`|D5PMz|^mh#?J;r*eha4uO1N8m$(<)SLhQ|^n;HTICp}R zOEX|L*qU+x`Q~&bn_uh0cuVT!&De$`3*2f4_^YF}XZFg_!HC3xcdQodBBC&L-Gc+O zfHD1m(MzpLp2yVi%J#>oB4|f}qXM$`FJE9q95xjS#{W^Wq32QhA0t|FurC9Wb9I^!Y2pPMwl)7dvn`C}2uOH;V;| z@(T^lzzVr}Gr~5bNuwZ$>ni=%K2jYtAMjCC&_U4 zP#sJGMD2~L1`WGFrtv>m8Qm}R)T@#}j?kZ+h zvk%zPQ=Bq0bGA;>vo0XR2Vo817ykex$0KoX7>?zr_T1)ZP5}$0DeHG^WR+v7YDC7# zqG1%3wTJ^=m8gxR0V1aryN~k#%R!G(!|X;9mGL|Am?a! zW%jH1s}OTPebkgq_ZU2vG00zfDB(5xkkq>j&kJvn^1Ex5W8FPrTAFle6s4cw!TB(w zIf0Xbf2@W<@eF=%R6D1qpvZYwDDkv#>Q6@@dZQQ>QX~xG=y}#3Cx3QrT%lzvL*6GB ztoTc3{B7KGv{*_uWpS^kiqQIzox(plJdZm+chGvd{9`70Pu2<=e@m~!Mk>eY=Tx$x zuPA_Wu7biW`Xq6}p4nI(>IK^q;US-R-&ZHu$=U77nYH!CeaW#=v@v*O|3-8vC`vo3 zU*|Z!LPn3OnI&S;RE;I!;oo0p_S1Q*khG&L>GkiSxK5R`W0p_*Gp{G~ z*Ij4spUtuo|JO8cO`-u_@EWB!0a8-BQb*B9#TdyHYTixM;sR@4*9JqG{smsl;(#=) zAKEy%-pzZx4>Dcy0s@hbnN9W-P`RGSv^?IqtU~&hTAtGVF0IN@cI(RaZRs$ZLBxIi z?o^CpGaZXu)})HOf;uS^tc`%SPE$A6@bOq|7z=)K9P4Op-~aT|IKOH#LdsM$tyvOoN@_E{iP9`PsPB7XA7WUJBe#%-o!Zy>G&yv5ba4Ed3P|R;y=b z>!EKeE`6eJ{|OSdq`(B@w2&n^p0of=H`AT)-x%(Iy?rZoS%ZSpEzk5Mif@nREq3o2 zcSIXHO)6%A8_wIgzu6VSoiY``XSg3GnH~m>kaj}?%3>s0S5#(UjhQE-W;5{mo+)p~ zTf*%ewn^#xq>G6;jM>%1d}x84##SO|x1AO=0i7+OH-3b;+Q}1DaxZVj_LuX-L+K;dW5L0!xcJ zU~Ub3t^j?A^t4Lri!Zz88GpKL-Ly+n(KKyYy6SKa*J0jk4n{wtYS?}>-LH&P@O_WL zwxs$z-LJow?%-}ZC0H+P)r1|Y16R#RH)Yo~u-zSMvfXeDv}$;$e@a7)yr2YRPA;)3 z^;YQ#LCp9HErC65F{FaQ8d`2USS^`Avc(ALJ$$-&vs$@c$#6)xA0id$$v z5f^i6loHVnRZ2P%gCILfq=adN(jKJ*2?75U{MgFX{Qv+Bxo)jSuCs0 zgLFRLRZU;VNd2xCuvnNU0W0NuOG`I$!AQd@2y#rvM`Bj|JwJ@#b^;12b7f3 z0?gBZBUvv>kv?)I7yYCdG*HLUtVJR)2%h)nOT^s}cHH7*`vQmM-LNx1P8RP-)Lh%0 z5C>ECl%--rJLSD3_dwkXG~YSVvRuc0OtIb)AcGKk{rBAdyspBEeDy84)4dDf=CMN= zVt@?bfmvZ;Bp|Ep%A(nvihfB_b;b1Ih1z!bwnOYA9OwihxHCQHvz_X~c7_hC&aq{_ z+U;TW7U(%4^hNVNiq=7QtP=iUK&NYY1OQ?Jr@IEB5j@Ag@4d1>@n{b_p~FpkTm5_7 z%X+cj)ii{t;=T3PPnqt@dl_TZz_())KxyQepDLQkuv!>!<%R1<0AGL?wGT8#trNM^ zc_T@E)xQ5tnKo|=?Z*!p3k#Al)5~SQr-mc_dbPppzo-c72`O~k!32OsWwy{Fws}eU z_q2XN)Fu00T;K37*VpC9$nJd8$Y$Mg6#m=8TP zqukyeIplBEdb~#8{CrDLP&2ri?ixLJy*z}OsoELzRkRp8PW0Xammxh^wv58+CzI!O zL;cYUWr`*sZdQD5N9fk*@e6kWW&t0_`UnS>f;$t*`V@VQWARK)0OD#*$^-LUIx#D! zsD_a2%|cFl6(%ziP27-PhX4ubi4Tlpp6)m42H(T$ofFn0CMc-i_G-+@$ zy$P;|t`Fz{IKmFDJ7E1hxfen0j0pGW#s}V zhlh<@>jTVDGtkbpPH-`F;9iz38q!gmt1cKBq@vSpr#MmwbQ|%G4r&LH_psX`h*nL} zLMs{bd5xBGYZqX2@PuHc<++@nU!!|U!s^0JJv|3@P75e539YIWU@oghsAYa+#jvTZBs_E3Q z59;F%n4NW?p^a{m&T5_nzX#kjltE4p*dLlG1omg>Sle3eT=@T$J~T<)z`9G(n;QrW zYOxQnX-V6qB1&?etw|E9;|P9(j5Yn6bl553yq+T2YO?6&ENry^K{A;iY^;z3a;UeU5 zOi3O^t0aDicN%wRx2*5tJPV2Yxmha3HK>N6TSbShMLdmtI$X<8jK7H~r9*tn*E0Bc zvMkrCWwF}12IZZgt*-l6>_eWj@X&Qvx@fTgZ$h?I=4ZMs7lbxoo<5B#vQ+6O^tLs| z*?6M;K6{$g z1tOl}SU9RM;y9Je@Wqf5trfcv;F!bb&&8T%!Qd>m3hU#Sf)&Pl;n-GLGy%|+nL?DH zQ%@2x3K-IW;vAB$T=OmFgVCYYp#%d=C{Hcc+_hk-rD^8>y44dbXD2$vPN`gB%H+>6 z7$Sj-sJG3qM<=u=a<19edS*g$&Gr*0qj(@+60 z+#{!)qE7{T;VULylF*!AS=)#Eh0UML(WT=#X`ji}<_V&Czzuz*RJZ@0P=;Ll8(~!a z^%uSj8sip5yzlpXM+!6y`RqZh>(Np`0;Wo(HSvQt{}XLeVgKh}p{84~yg-8<4w0`k z!GA!?@A$pre_ZMNr(0kRcx|o#%#iW1_N4MsIMkhNkRlans0#+jwE0Cbe}?}9QvUq~ zDL?f0{ZSe2c@Ov|%2+e#(Pul6|LYnk9Pz>S$|h}wF*W=jkTU&}j<;o{1pxqhpczbYb>Rv6h*cSvUSgH?gSTk~9-U(Z`u2 zs3<(YAf@RqNU8NWvE3UuQ&Hp-Tv&HA<@}#nst}epfZGg1GXA!*+lwYXv8;NWifN?0?BKGV$HnlH znc!Z~HH?|Zww;8^U@YqSgKiRZLNIU?a)v;quO!j}CJM zf$;$?sT>hZiY=&R$MQIeq=FsrBBH@MMI2jf7xn!|a)ZJ+e102>; z)5xqZUO)7z`RzF`aS4?RIdB?eB#Vsb+0tYtVDvg=FF}~yN;v3{?v@%qxO0iIb#29& z{LLP40v>E8KsC1JFqSAhDOUGIlaB{Xdr8d8S||zAV-Ed&`Q~NS%xDU?az(ml1xhwM zKv8bX9il}C{tl9xZDRKcgsx+v;Y7uOcRGZ2fAxLb9}F9_%SUzzM;c3Dn{(_GD^Zio z`qvTvlSvC8r@0pE?)jXo0NApe^Q6L}H=Kc}&)?H|Xz@4)ws6tp?WL{TVyWI|N4u&y zy^W}`ZKR3us>>+9A*!Q_&S%@iAx8}7gc0v|+IeeVJ#tO3-_{kCf`3CJcn!2w*KMut z0*IiLbXx8VnBa|i%*i}mDO=Kl-8|;1M~m@UYQ$+kn{mPQvIV#HQ@<8uNwa>|nVqA! zV-596ISevZhq7zyxw>@1yY1iHUR+hZfE*bih1T<}_@n#ZC6Jz#_ei^62_*l2MMnNV z^-kK@+Tj2Ft!yp3uZHwZ)w5rT%fiM``e4o&-JqCf=9))bbdF&-S){dVa7NrUlp^(c z^O3oM0+Kam!!Ri3am_yCK0V<*-WQ_#QRbbStixq$!7x>Zb2C>mP(XN2GgMjDAfAv( zgzsramLOsR@32^DucT|@_=`r8lM5=QjqNc?GsGP`Eauvi5TDTxDaJ_~1vp3(cozpv z!T>$ep;9QH1%eEX!m+&`D*~W%PvZ)c?C}ujM@AM zxotRQ^gfcBn+EJsiD@img=k)_lln|nk;dclrAK_GMn?UMzInadDxD@~U2HS{m>DTm z3|8)$=Wiy=;p|Z<>fw#^B2i2lrVZ0ZnGHd}!yMv|gs5m2PKCd0Szae_;9oY< zz3bnKqyE#U%1i#$o2gT{7;k9l#ZxClt-PLMvR*c)UTZdH^YqyoUD31#{`uVN`D|g}(3$>sSz4*SqsgItRq=7BSw=|;LBMnB zfh#;a5}XXn8I@uM81J)SxQXNhRdVc**bgy|(4AF*1^6HNcRs6NJU$T-FG#zcT+j)& z74?Le9;)tpRbEBMxU$2v;#LzXgI%*ASOica8fy{gSn$-zTrsfq4iyT-i^v{zttT(Q zDvWZWqnYP*hj4U6cd~HW`ra?*kkA{KOg=63Hv0zk_1s#D00*KO>3TYy=@Nn~E1b+pMN6%EknX1M47hZqNAOB5sr-NOB zH-(#2>8a&Tg`DPkjT>_?G_u>i>ui)=p`m=B-6S9x6ww9YR4dPRUw~TI9PItu*5=4V zG#HaTy*-N&ob)WQt7h3fMwyd!P`X@S)@KeeoNgL*iiRs#vUGStX#fqzZZ%hfdw$B# z{qdA?FfDZ^0PQiUD9e`X>UPNA@e%Wg`3HRU`wCm#UdWCDw?(s6<1|A#nO9O~N~k!& z>;3NZp?Gh(-vHq}xsijNi{!~TspQe$+9&6Ex4qb|z^2b2qfh7->xE2+-;h+?IphGrNW~Mw{cyER*SS6O46Ub=vKz%VzaN`C8-phOdIId`}CQ z)$*WK2pc~3c;(@bgqE@Ep2AmEV=9GYI@|iKntEe~5qLxf<%kta+|?ZtHJ8wXfJui< zkq4O_Rhxa-w}kLc=S_qoh7^Pi&Utpc-Pcs;GIIXq7K4o9f|Gi?% znZSb}{z@XszmmxRZ_vm8SFxSUY>obhCZZ`efTAF`&JW7%wOra1|e{3bvEOcx>6`8hFAnM2-9+F>aVc(GC%WN;`Q zZG*)S^c0i3R%j;W?PL7F+@dsVEVI?ZA|yd(c^gG7N`9Nht^x<1WF5y+4u z6f8Z6h%Ljmuvz2iOgfxOM}Y!Sn{IN23yZ&jhEhFW%ck0tBp1iQQ?h9~kx?z#LuY3R zNJD)p^thzAZ8hzXHVY-|W}#6{4;izF)j{qrI$6DHT}C|cLU(X|INL<_Co<4kCEh>| zW5-XAy;9OV6UQXN7J@9i;!p9N@jJbkKxi?Y_&)rcup6LgAJU4b_bXbF>YX!GX&lJG z0tTLc{46F9bKV=7rW@>1GXT2rf`KoX~Tng zzh6#qS45wowcpqd2e#l*5jT&fz)7k##U2Py%AY6-Y-Iq?Z_Jq?tOP&U&ad~t%quN7 z#||l45%((}rXRl5_e_}%E1ppZx|%*DFh7u=>n%~}rbeMPJOmXVYDO@Uh7C7(8NHYV z4Q#Fy9<`6m4Hu&V&7Mq9p^?6Sq#`!(kg>NXfGK<=aS{)w1d`?>)iR!C7`MQDH3ToL z*oi7doGYK{OmB{ah0cr}jv5ZzGqI5t{vFIS%d?}N_Y=@MJpwMrnN6l zUQN{XMO4sts5u46s<)nYF(VgGG96i9<}*k6iO;MvkSg4dYiE~boB6o5E!WH`{GyEn zyU}XCq8_GlN~3GsNWb4XoQt^Co?u~u8U+Om>5iXWc2RtMR-qklvaa`)Jo7%EJ+Z3= z@jl%KjCJbUV5fH55*#7h8HC<6!eM!8zGBx)aw#sA(YT8^`b=Y*wTd^GRdHlMMY!^_ zscXwTXwWU}yFGDDYZ(aInC*@;yVc(WK-GuqfTtazRRuY-l4@GF5iQm2173V@luRXW zi@7QaXE%Z^`PRsA$)qQTrNBBYn2?t^aAY!fvDPo;aXvqa?;Fn91?{}4k&bzOJ#ZjAbQ>P1_9ga(d3qWC4nX0^gJY3J# z%C*mE-L{!OwcAd7yCOwT+uEt%g{P(_S4&ZS#%&K{TI9^KKMhwXtx=E_GRZH+-xu2_ z_7pR~-jacwyCZxwhsWJoQ>n30I8}S6O_VaOsf&=DGtB~@F8iU7lvPV8oYh5hrdBtL z$Lk~ELM+-5m(wt9jGxi+uGv9O4V?c3XI+L{Mj!-Q@O5WNICa}(UD8F?#^2=^F6B@w z*S3Sz8eA8kUorrg1x1gqNc1>?wIRA@+5x$W7PwM^3(KOe0skO#ix&NaNag_gOcq~Z z@Q!r+5J-6E)s%=ovG2^#Q7#Fb^tgG)YxU5D`k1Z;+I$yb<98z0tyIGB1IXRBwug_69#XT;8V0>BHm{ zjPE|YoIam@TEl(3d0qWnnF$a56fG^GbY=PoFguBzfG%VbJYh5S^Mql+(JW&25-jz! z_1pbY8QHYdd@^74yUhFepPXPLvt~S_zfD!<@Bgl;IvNY;JO01<#7(N2j{Bp?|5$qV z1Krh92@DvO#g&(JR`fI@oBH_txDwp03Wp!n6e!P8A{mcnPSEEM;NEE)j);Qy3fL<*KTb3Lv`@k@-270@rNu z#m!lEASQu$O7x>;kpV^}o)=CV>jxP}SSE=Ja(BcnYP0;^>Sj!kh~v+p2rZ+Ia~ZdB zvSx?SEc?aFdJ~PD$Nx1RN*$Hg_3iUGlm_gtz!Rv$>fYX;NrYWn;Tq6*e#RRSls$$tEoqDD+#{kk zp94pP`QI%e`o&>J(|UQ7AW0QhL>ii!JGS;v68TSO0ObR+?E39HD}KWC7!-RacTRL_ zvwt0_Gs*Z`t^WJwOxUz~q@9o@_5dAh1-FbiX71eSQmbfa8~CMV1M4w)W3*v>|p0HJwzXa>3@+Mz@d z%>?s`{}ZY8otL9uf;86E3S0<~zyMZa{f$4mNbzcNXkJp_V8irI(o7)7fd-5tqsti? zUf(RKDIV98E81}DNg!#nlF}&Hmh5&oQ6g0%WFn(W3?#!FQJGw$$Q}u;e<)P7Z31Ag zg*q1JN}Gx@f7&i_sD@ltxqEiYU5(yVV%#OckV~#RfQ!qhys2n-H>dq_eAzonC?`sc z>0c(raEsyUqaUr(UkW1DRxb1efOHQOd{tXrKd+et1O;+i3xsBF$1id{h1CHG-+3Lp zZgju3t_Y0UtL}ci4{$B^ennCU8whm;2ABqJXe^V;Tc#Dk(GY;jj}zGEv29n#0+R%L z7mxUSEwi3n5dsF#wbP2k+xDrU3f6=Emj1Rk4j z4+Pjg+1Wp(*IKgkl7SRZTN|sK2B~%c(_Wsnk3XcM>Oj~Gg;wn)9ywY>3ty=7EW>AQ z{~7a|rv&-wf%XbG{|xc(8XT-KDc@n8?$h0&_bnj3Gikz|0BV-}%v)_$A;*4B6Psh!xtq~pt1`?3j@ZT0?Vt$k%nFWGSW z+9|1Mt2@P~umQirezw*yJETa;4TWShy|1ai{4gOyka-yaMjU2MdH6s>(=>%Km@;tP zFvS5i!huTaPw(G7hZDsKMAkXygR>Uy8S{bN;UHAC zKi?%@C=Q}ECo^e!_Y26UPd~Ke-OHS9NlU&=FL(S3>2jx1$0v@woV!D7e_{rqk)G2? zbpI&|b+>W#@t+y+D9O@^;5dHaB$#Q*D&8vuU0!{3=1P|A7xcYv5SjjL78?9`Me@uH zVHmCA;_5woU%p(A`{+;hrS=$cAvTsBzOP&luivNa*|luc;q^enILa>)V16^d&VItM zu*__KQNK#QU@Z~;(TcpJ@YgJu@mn?(>^sA9;jodG8HLX;S;l+Y8Yf`3g%f_CJ9Cn8 zOWex}==#OVc{P(BFv{JglzyHmJsX-@jsS{D(AJiF%+&lSm)Y@kdLy2{4r0A|$7;h% z%1VHqGqpP8GTNyagR0|(RFvEGq;T1aJQ3cA=B%jwZkT%ZROj!vrz@kY(Eoj>YCV9< z?5%xzjg8jX;4ht=jT)<5Dw&5sOIe8Iu7C)YWdrvz3|oAjN_m0&jmXqBg#zLNPHUg@@XeEE$;<$+;8D8n+rl(D5#w`F} z3PhtPF1OPt$IwJKMw@33)0$laPu78esGnlYZ_$%o80(e zzF!V8B33^zR^8}tDrh@oK>c%f2|aRZqVKrSg6d$0>Vr;1zfN`)kh0e=X>T1C+Lz<$mmJ zYT_PX%KOrDU}{Gb-;uae?LgOs)9H1$UqeT+Ig>1AON|zcKRN}YkX+|9<#mzTT1*w? zmTZpzJfk+6lp%6K<`RC3Jrcu+T zKlp@F{?JG$+aX5oUF;T zS)4{U_o8rdW^%$j2n`4!*gz1>gW#EcEh%gCmfCJbJDfRzr0jNtKr|`|2Pwh`)u1b> zN^3HNcp+PGj!T42gQ`kGJcMe5YuD!YmsZiNwn>F_2`e;T_?lhkD@1}MS~PF}PUf93?q!dx>9ZGH0=hr@%0issK{+E2 z?v@tYf$J>_`$z(4WTvI5Uu{GfQdu9Cr;Odo^W`U$ZisDGT*K?CXsM(rJ;~<87)&r7 z_B6`$+msnwz}b`)N7_bdKPXU4*4+`z(dx>xn|_{_7VrmmckibK8%7+R5axC+EaUv& zY0`xl#*?ijplXr=XiU_d_0p}|t5KEy*~W*t*|zI}p<9pF>0~X$L44>ixibjdYAX$* zG{H~TZaWe~hGQ=Voyps#nC58|lT{VA!$%XV z*uZVuV;4|J)MvXuGqln>9WwfM-lv{E`+X1HO-(9twFChQnTyjRheGxypvsq3{4a3_Vst&D}l5p7RK zE++yE51fg5Nh%x83=EVW=%IPo2GyzzwZ&=(@;-x1VRt(F0mM`{wp>y+j~CQ0bc`zGk)O))t^dREF}; zG%7qY#M1Uxn{&bxQZFhI1InO0jIxYv{Uu4_tDDp+@zdj19QF8pCU@!|4)&x6nCC4S z=Z3$bPwC!%^&4t(1hY9q+Wp*Ao~s~6WmLikhRPV)mAN!+6uB&-%zx*?)G;@bCzfx} zGc1yFl3mVAGrFqg@r-Ml&K|2>_f&qk12BS}eec5En5vv792R!_Ps>WA#~m*VP{=Kl z(eqvHLw%q=r$&hh{^ZonDXM9*VaG}^-)JeIilvHT_d1TvVTL!tNTA@evFKaD zu4*LXGn2=WI_H)sdKxmA*_K6TNq{--li!Y-veTl;h z=OX_A@!=b-9t^HhUkB$0uRk`r!eBF=yRc-{&EqHm_5w@iwdmFJn)J9a9Qox(s$rkHGXRLx!-pMAs?xBr+tix*H=A)^IzqHt{M zrgZ^YsNs2|Hl|m*W)&Jye93<}9E1t?ZPc|G zvrG}wU*gmJZO}QK3S{HUm>TO$XSld-5R(O`<-qVP!fx(g-e9~A@R8oII+Iv^d-eKC zCN3Ne4$?&{xkcif;2z!0m8zO4ZCFBowjY; z_D=4!ZQHhO+qP}nwr!g?{~D(nb;h~XSzmYc<~t*1JTX7sS74Pt{qp9L4%vw-T>MNg zzxgcTau5{m^iIn66Xbh&2qZeo&;V$I<~mvncrMalQdcv{1ffJ(hQiDmJoK$4+my_> z?aN$V<|4rNGzX(l=>nKl*aQ(vt^GUc3Uxi9u~TiDL77mSUgRy}WX|PBOLYM0jRZkdn#IMC}^v+;AmNad(=M zcSZF`FP>vr8wOcADbP*5baf(}+Ab&443A>IfG-(5h+M3N1~H&^RC()3q|bm*aTift z7nX9EmFlq5OgTkt)ccRN-XGGtk|V9@TfW%>aKKCEbG0XOlu4qsJax@Fhe5bMNI(H+V2=doJCrL$Kgf$EzFd+*w6&HQnRIfO@1rvNt1$NrlPvy0_R6tmj@@;Zr! z;-Srq*WOXslJ`bzCra#nUA=vmq+@Urr0*4Tqo}R!$8@gfkX}4y$K{J$Jw};(Bbo#M z^;9w>8(YoGZco4Zq_Wm2Z`LKTkbwq;@dg0os^>CM7{z@DMyX(6rlk{9H{Wo0H?_;5 zIv@ELXZV;sfula^c+*@dt&=>q^=swP;_H+0c6G2v7fMZqp68|aHVhCe(2RU4iA3je zuO(8~Z&Rn7p=fD$r-<-_z_&-&qas3Lb|GzjuQ%kzQ;VI~TbQLZhWluKi@H$8BwwD2 z&8G)G&0RfC3eBoWTfWAAk4Z3BBtIhsAb-QYtX!FLegK#(&sR)8ttu?u@@Wc5FpC4@ zUsN>u3mu3ZbLcb()-YRI*a7T)9_Zvwu+XF&rDrQ$@7xq`wVgGp7Nm?~I`N`Sw3)*d zJ3bHK@3d!(H6N=EmCal>8?bI`Y2u|vkI5LGmweLZ-3)bntsk}UH}V>f|MQAx4v+qv z!OVtDto8ybF<1AnN-J*kHj(Y=?~&sv{=_aum4QViV~g;zSU*8~E8$vrPFidT)~}et zI`Uv~OoVFk!aUMTPvot6x%jj;8