/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.dev.shell; /** * This class contains a set of static methods that can be used to interact with * the browser in hosted mode. */ public class JavaScriptHost { private static ShellJavaScriptHost sHost; public static void exceptionCaught(Object exception) { sHost.exceptionCaught(exception); } /** * Invoke a native JavaScript function that returns a boolean value. */ public static boolean invokeNativeBoolean(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeBoolean(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a byte value. */ public static byte invokeNativeByte(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeByte(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a character value. */ public static char invokeNativeChar(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeChar(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a double value. */ public static double invokeNativeDouble(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeDouble(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a float value. */ public static float invokeNativeFloat(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeFloat(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns an integer value. */ public static int invokeNativeInt(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeInt(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a long value. */ public static long invokeNativeLong(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeLong(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns an object value. */ public static Object invokeNativeObject(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeObject(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns a short value. */ public static short invokeNativeShort(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { return sHost.invokeNativeShort(name, jthis, types, args); } /** * Invoke a native JavaScript function that returns no value. */ public static void invokeNativeVoid(String name, Object jthis, Class<?>[] types, Object[] args) throws Throwable { sHost.invokeNativeVoid(name, jthis, types, args); } /** * This method is called via reflection from the {@link CompilingClassLoader}, * providing the hosted mode application with all of the methods it needs to * interface with the browser and the server (for deferred binding). */ public static void setHost(ShellJavaScriptHost host) { sHost = host; } }