com.google.common.annotations
Annotation Type GwtCompatible


@Retention(value=CLASS)
@Target(value={TYPE,METHOD})
public @interface GwtCompatible

The presence of this annotation on a type indicates that the type may be used with the Google Web Toolkit (GWT). When applied to a method, the return type of the method is GWT compatible. It's useful to indicate that an instance created by factory methods has a GWT serializable type. In the following example,

 @GwtCompatible
 class Lists {
   ...
   @GwtCompatible(serializable = true)
   static <E> List<E> newArrayList(E... elements) {
     ...
   }
 }
 
The return value of Lists.newArrayList(E[]) has GWT serializable type. It is also useful in specifying contracts of interface methods. In the following example,
 @GwtCompatible
 interface ListFactory {
   ...
   @GwtCompatible(serializable = true)
   <E> List<E> newArrayList(E... elements);
 }
 
The newArrayList(E[]) method of all implementations of ListFactory is expected to return a value with a GWT serializable type.

Note that a GwtCompatible type may have some GwtIncompatible methods.

Author:
Charles Fry, Hayward Chan

Optional Element Summary
 boolean emulated
          When true, the annotated type is emulated in GWT.
 boolean serializable
          When true, the annotated type or the type of the method return value is GWT serializable.
 

serializable

public abstract boolean serializable
When true, the annotated type or the type of the method return value is GWT serializable.

See Also:
Documentation about GWT serialization
Default:
false

emulated

public abstract boolean emulated
When true, the annotated type is emulated in GWT. The emulated source (also known as super-source) is different from the implementation used by the JVM.

See Also:
Documentation about GWT emulated source
Default:
false