/*******************************************************************************
*                                                                              *
*  File:        LuaJava_07.java                         Revision:  1.0         *
*                                                                              *
*  Purpose:     accompanying Java class for LuaJava_07.lua                     *
*                                                                              *
*  Creation:    06.11.2004                     Last Modification:  07.11.2004  *
*                                                                              *
*  Platform:    IBM-compatible PC running Windows 98SE                         *
*                                                                              *
*  Environment: Java 1.4                                                       *
*                                                                              *
*  Author:      Andreas Rozek           Phone:  ++49 (7031) 222305             *
*               Bunsenstraße 80/1       Fax:    -                              *
*             D-71032 Böblingen         EMail:  Info@Andreas-Rozek.De          *
*               Germany                                                        *
*                                                                              *
*  URL:         http://www.Andreas-Rozek.de/                                   *
*                                                                              *
*  Copyright:   this software is published under the  "GNU Lesser General Pub- *
*               lic  License"  (see  "http://www.fsf.org/copyleft/lesser.html" *
*               for additional information)                                    *
*                                                                              *
*  Comments:    (none)                                                         *
*                                                                              *
*******************************************************************************/

public class LuaJava_07 {

/*******************************************************************************
*                                                                              *
*                                 Constructors                                 *
*                                                                              *
*******************************************************************************/

  public LuaJava_07 () {
    super();                                              // just to be complete
  };

/*******************************************************************************
*                                                                              *
*                             Public Class Methods                             *
*                                                                              *
*******************************************************************************/

/*******************************************************************************
*                                                                              *
* Lua2Java                         detects the original type of a Lua argument *
*                                                                              *
*******************************************************************************/

  public static String Lua2Java (Object Argument) {
    if (Argument == null) {return "null (null)";};

    if (Argument instanceof luajava.LuaObject) {
      luajava.LuaObject LuaArgument = (luajava.LuaObject) Argument;

      if (LuaArgument.isNil())          return "Lua nil (nil)";
      if (LuaArgument.isBoolean())      return "Lua Boolean (" + LuaArgument.getBoolean() + ")";
      if (LuaArgument.isNumber())       return "Lua Number (" + LuaArgument.getNumber() + ")";
      if (LuaArgument.isString())       return "Lua String (" + LuaArgument.getString() + ")";
      if (LuaArgument.isTable())        return "Lua Table (" + LuaArgument + ")";
      if (LuaArgument.isFunction())     return "Lua Function (" + LuaArgument + ")";
      if (LuaArgument.isUserdata())     return "Lua Userdata (" + LuaArgument + ")";
      if (LuaArgument.isJavaObject())   return "Java Object (" + LuaArgument + ")";
      if (LuaArgument.isJavaFunction()) return "Java Function (" + LuaArgument + ")";

      return "(unknown type) (" + LuaArgument + ")";
    } else {
      return Argument.getClass().getName() + "(" + Argument.toString() + ")";
    }
  };
};

