GwtCompatible
Date: 2016-05-24

com.google.common.annotations

## Annotation Type GwtCompatible

-     @Retention(value=CLASS)
      @Target(value={TYPE,METHOD})
      @Documented
      @GwtCompatible
      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.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `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.

- - ### Element Detail

    - #### 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