// Path: src/main/java/org/tmpotter/util/Platform.java
// public final class Platform {
//     public enum OsType {
//         // os.arch=amd64, os.name=Linux, os.version=3.0.0-12-generic
//         LINUX64,
//         // os.arch=i386, os.name=Linux, os.version=3.0.0-12-generic
//         LINUX32,
//         // os.arch=x86_64, os.name=Mac OS X, os.version=10.6.8
//         MAC64,
//         // os.arch=i386, os.name=Mac OS X, os.version=10.6.8
//         MAC32,
//         // os.arch=amd64, os.name=Windows 7, os.version=6.1
//         WIN64,
//         // os.arch=x86, os.name=Windows 7, os.version=6.1
//         WIN32,
//         // other unix
//         UNIX,
//         // unknown system
//         OTHER
//     }
// 
//     private static OsType osType = OsType.OTHER;
// 
//     static {
//         String osName = System.getProperty("os.name");
//         if (osName != null && System.getProperty("os.arch") != null) {
//             boolean is64 = is64Bit();
//             if (osName.startsWith("Linux")) {
//                 osType = is64 ? OsType.LINUX64 : OsType.LINUX32;
//             } else if (osName.contains("OS X")) {
//                 osType = is64 ? OsType.MAC64 : OsType.MAC32;
//             } else if (osName.startsWith("Windows")) {
//                 osType = is64 ? OsType.WIN64 : OsType.WIN32;
//             } else if (osName.contains("AIX")
//                     || osName.equals("Digital Unix")
//                     || osName.equals("FreeBSD")
//                     || osName.equals("HP UX")
//                     || osName.equals("Irix")
//                     || osName.equals("MPE/iX")
//                     || osName.equals("Solaris")
//                     || osName.equals("SunOS")) {
//                 osType = OsType.UNIX;
//             }
//         }
//     }
// 
//     private Platform() {
//     }
// 
//     public static OsType getOsType() {
//         return osType;
//     }
// 
//     public static final boolean isWebStart() {
//         return System.getProperty("javawebstart.version") != null;
//     }
// 
//     /**
//      * Returns true if running on Mac OS X.
//      */
//     public static boolean isMacOsx() {
//         OsType os = getOsType();
//         return os == OsType.MAC32 || os == OsType.MAC64;
//     }
// 
//     /**
//      * Returns true if running on Windows.
//      */
//     public static boolean isWindows() {
//         OsType os = getOsType();
//         return os == OsType.WIN32 || os == OsType.WIN64;
//     }
// 
//     /**
//      * Returns true if the JVM (NOT the OS) is 64-bit.
//      */
//     public static boolean is64Bit() {
//         String osArch = System.getProperty("os.arch");
//         if (osArch != null) {
//             return osArch.contains("64");
//         }
//         return false;
//     }
// 
//     /**
//      * Ask on Unix type OS.
//      *
//      * @return true if platform is on Unix
//      */
//     public static boolean isUnix() {
//         OsType os = getOsType();
//         return os == OsType.UNIX;
//     }
// 
//     /**
//      * Returns true if running on Linux.
//      */
//     public static boolean isLinux() {
//         OsType os = getOsType();
//         return os == OsType.LINUX32 || os == OsType.LINUX64;
//     }
// }


import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.tmpotter.util.Platform;
import java.awt.Image;
        }
        return null;
    }

    /**
     * fire handler for aqua app.
     *
     * @param objEvent object fired
     * @return true when success
     * @throws InvocationTargetException TBD
     * @throws IllegalAccessException    TBD
     */
    public final boolean fireHandler(Object objEvent)
            throws InvocationTargetException, IllegalAccessException {
        final Object objResult = methodHandler.invoke(objectReciever, (Object[]) null);

        //  Default return value is true, this will cause whatever default
        //  behavior is associated on the Aqua side - app close in the case
        //  of firing off a quit event
        return (objResult == null ? true :
                Boolean.valueOf(objResult.toString()));
    }

    /**
     * Set Icon Image for dock.
     *
     * @param image icon image
     */
    @SuppressWarnings("unchecked")
    public static void setDockIconImage(final Image image) {
// Path: src/main/java/org/tmpotter/util/Platform.java
// public final class Platform {
//     public enum OsType {
//         // os.arch=amd64, os.name=Linux, os.version=3.0.0-12-generic
//         LINUX64,
//         // os.arch=i386, os.name=Linux, os.version=3.0.0-12-generic
//         LINUX32,
//         // os.arch=x86_64, os.name=Mac OS X, os.version=10.6.8
//         MAC64,
//         // os.arch=i386, os.name=Mac OS X, os.version=10.6.8
//         MAC32,
//         // os.arch=amd64, os.name=Windows 7, os.version=6.1
//         WIN64,
//         // os.arch=x86, os.name=Windows 7, os.version=6.1
//         WIN32,
//         // other unix
//         UNIX,
//         // unknown system
//         OTHER
//     }
// 
//     private static OsType osType = OsType.OTHER;
// 
//     static {
//         String osName = System.getProperty("os.name");
//         if (osName != null && System.getProperty("os.arch") != null) {
//             boolean is64 = is64Bit();
//             if (osName.startsWith("Linux")) {
//                 osType = is64 ? OsType.LINUX64 : OsType.LINUX32;
//             } else if (osName.contains("OS X")) {
//                 osType = is64 ? OsType.MAC64 : OsType.MAC32;
//             } else if (osName.startsWith("Windows")) {
//                 osType = is64 ? OsType.WIN64 : OsType.WIN32;
//             } else if (osName.contains("AIX")
//                     || osName.equals("Digital Unix")
//                     || osName.equals("FreeBSD")
//                     || osName.equals("HP UX")
//                     || osName.equals("Irix")
//                     || osName.equals("MPE/iX")
//                     || osName.equals("Solaris")
//                     || osName.equals("SunOS")) {
//                 osType = OsType.UNIX;
//             }
//         }
//     }
// 
//     private Platform() {
//     }
// 
//     public static OsType getOsType() {
//         return osType;
//     }
// 
//     public static final boolean isWebStart() {
//         return System.getProperty("javawebstart.version") != null;
//     }
// 
//     /**
//      * Returns true if running on Mac OS X.
//      */
//     public static boolean isMacOsx() {
//         OsType os = getOsType();
//         return os == OsType.MAC32 || os == OsType.MAC64;
//     }
// 
//     /**
//      * Returns true if running on Windows.
//      */
//     public static boolean isWindows() {
//         OsType os = getOsType();
//         return os == OsType.WIN32 || os == OsType.WIN64;
//     }
// 
//     /**
//      * Returns true if the JVM (NOT the OS) is 64-bit.
//      */
//     public static boolean is64Bit() {
//         String osArch = System.getProperty("os.arch");
//         if (osArch != null) {
//             return osArch.contains("64");
//         }
//         return false;
//     }
// 
//     /**
//      * Ask on Unix type OS.
//      *
//      * @return true if platform is on Unix
//      */
//     public static boolean isUnix() {
//         OsType os = getOsType();
//         return os == OsType.UNIX;
//     }
// 
//     /**
//      * Returns true if running on Linux.
//      */
//     public static boolean isLinux() {
//         OsType os = getOsType();
//         return os == OsType.LINUX32 || os == OsType.LINUX64;
//     }
// }


// Path: src/main/java/org/tmpotter/util/gui/AquaAdapter.java
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.tmpotter.util.Platform;
import java.awt.Image;

        }
        return null;
    }

    /**
     * fire handler for aqua app.
     *
     * @param objEvent object fired
     * @return true when success
     * @throws InvocationTargetException TBD
     * @throws IllegalAccessException    TBD
     */
    public final boolean fireHandler(Object objEvent)
            throws InvocationTargetException, IllegalAccessException {
        final Object objResult = methodHandler.invoke(objectReciever, (Object[]) null);

        //  Default return value is true, this will cause whatever default
        //  behavior is associated on the Aqua side - app close in the case
        //  of firing off a quit event
        return (objResult == null ? true :
                Boolean.valueOf(objResult.toString()));
    }

    /**
     * Set Icon Image for dock.
     *
     * @param image icon image
     */
    @SuppressWarnings("unchecked")
    public static void setDockIconImage(final Image image) {
        if (!Platform.isMacOsx() || image == null) {