GWT 2.7.0

com.google.gwt.core.client
Class JavaScriptObject

java.lang.Object
  extended by com.google.gwt.core.client.JavaScriptObject
Direct Known Subclasses:
ArrayBufferNative, ArrayBufferViewNative, CanvasPixelArray, Context2d, DataTransfer, EventTarget, FillStrokeStyle, ImageData, JsArray, JsArrayBoolean, JsArrayInteger, JsArrayMixed, JsArrayNumber, JsArrayString, JsDate, MediaError, NativeEvent, Node, NodeCollection, NodeList, PositionImpl, PositionImpl.CoordinatesImpl, StorageEvent, Style, TextMetrics, TimeRanges, TimeZoneInfo, Touch, XMLHttpRequest

public class JavaScriptObject
extends java.lang.Object

An opaque handle to a native JavaScript object. A JavaScriptObject cannot be created directly. JavaScriptObject should be declared as the return type of a JSNI method that returns native (non-Java) objects. A JavaScriptObject passed back into JSNI from Java becomes the original object, and can be accessed in JavaScript as expected.


Constructor Summary
protected JavaScriptObject()
          Not directly instantiable.
 
Method Summary
<T extends JavaScriptObject>
T
cast()
          A helper method to enable cross-casting from any JavaScriptObject type to any other JavaScriptObject type.
static JavaScriptObject createArray()
          Returns a new array.
static JavaScriptObject createArray(int size)
          Returns a new array with a given size.
static JavaScriptObject createFunction()
          Returns an empty function.
static JavaScriptObject createObject()
          Returns a new object.
 boolean equals(java.lang.Object other)
          Returns true if the objects are JavaScript identical (triple-equals).
 int hashCode()
          Uses a monotonically increasing counter to assign a hash code to the underlying JavaScript object.
 java.lang.String toSource()
          Call the toSource() on the JSO.
 java.lang.String toString()
          Makes a best-effort attempt to get a useful debugging string describing the given JavaScriptObject.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JavaScriptObject

protected JavaScriptObject()
Not directly instantiable. All subclasses must also define a protected, empty, no-arg constructor.

Method Detail

createArray

public static JavaScriptObject createArray()
Returns a new array.


createArray

public static JavaScriptObject createArray(int size)
Returns a new array with a given size.

Consider using this method in performance critical code instead of using createArray(), since this gives more hints to the underlying JavaScript VM for optimizations.


createFunction

public static JavaScriptObject createFunction()
Returns an empty function.


createObject

public static JavaScriptObject createObject()
Returns a new object.


cast

public final <T extends JavaScriptObject> T cast()
A helper method to enable cross-casting from any JavaScriptObject type to any other JavaScriptObject type.

Type Parameters:
T - the target type
Returns:
this object as a different type

equals

public final boolean equals(java.lang.Object other)
Returns true if the objects are JavaScript identical (triple-equals).

Overrides:
equals in class java.lang.Object

hashCode

public final int hashCode()
Uses a monotonically increasing counter to assign a hash code to the underlying JavaScript object. Do not call this method on non-modifiable JavaScript objects. TODO: if the underlying object defines a 'hashCode' method maybe use that?

Overrides:
hashCode in class java.lang.Object
Returns:
the hash code of the object

toSource

public java.lang.String toSource()
Call the toSource() on the JSO.


toString

public final java.lang.String toString()
Makes a best-effort attempt to get a useful debugging string describing the given JavaScriptObject. In Production Mode with assertions disabled, this will either call and return the JSO's toString() if one exists, or just return "[JavaScriptObject]". In Development Mode, or with assertions enabled, some stronger effort is made to represent other types of JSOs, including inspecting for document nodes' outerHTML and innerHTML, etc.

Overrides:
toString in class java.lang.Object

GWT 2.7.0