com.google.gwt.rpc.server

## Class WebModeClientOracle

- java.lang.Object
- - com.google.gwt.rpc.server.ClientOracle
  - - com.google.gwt.rpc.server.WebModeClientOracle

- All Implemented Interfaces:
    java.io.Serializable

      public final class WebModeClientOracle
      extends ClientOracle
      implements java.io.Serializable

  Encapsulates data about the structure of the client code.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `WebModeClientOracle.Builder` A Builder object to create ClientOracles.
    `static class` | `WebModeClientOracle.Triple<A,B,C>` A pair with extra data.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `WebModeClientOracle()` Instances of WebModeClientOracle are created either through the `WebModeClientOracle.Builder` class or via the `load(java.io.InputStream)` method.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.gwt.rpc.client.ast.CommandSink` | `createCommandSink(java.io.OutputStream out)` Create a CommandSink that can encode a payload for the client.
    `java.lang.String` | `createUnusedIdent(java.lang.String ident)` Returns an identifier that does not conflict with any symbols defined in the client.
    `CastableTypeData` | `getCastableTypeData(java.lang.Class<?> clazz)` Returns the Json castableType data for a given type.
    `java.lang.String` | `getFieldId(java.lang.Class<?> clazz, java.lang.String fieldName)` Given a base type and the unobfuscated field name, find the obfuscated name for the field in the client.
    `java.lang.String` | `getFieldId(java.lang.Enum<?> value)` Return the field name for a given enum value.
    `java.lang.String` | `getFieldId(java.lang.String className, java.lang.String fieldName)` This is similar to `ClientOracle.getFieldId(Class, String)` but does not search supertypes.
    `Pair<java.lang.Class<?>,java.lang.String>` | `getFieldName(java.lang.Class<?> clazz, java.lang.String fieldId)` Return the name of a field from a client-side id.
    `java.lang.String` | `getMethodId(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... args)` This will search superclasses.
    `java.lang.String` | `getMethodId(java.lang.String className, java.lang.String methodName, java.lang.String... jsniArgTypes)` This is similar to `ClientOracle.getMethodId(Class, String, Class...)` but does not search supertypes.
    `java.lang.reflect.Field[]` | `getOperableFields(java.lang.Class<?> clazz)` Returns the fields of a given class that should be serialized.
    `int` | `getQueryId(java.lang.Class<?> clazz)` Returns the assigned castability queryId of a given type.
    `java.lang.String` | `getSeedName(java.lang.Class<?> clazz)` Returns the name of the top-level function that is used as the seed function for a given type.
    `java.lang.String` | `getTypeName(java.lang.String seedName)` Returns the deobfuscated name of a type based on the name of the type's seed function.
    `boolean` | `isScript()` Indicates whether or not the remote client is running as compiled script.
    `(package private) static java.lang.String` | `jsniName(java.lang.Class<?> clazz)`
    `static WebModeClientOracle` | `load(java.io.InputStream stream)` Recreate a WebModeClientOracle based on the contents previously emitted by `store(java.io.OutputStream)`.
    `void` | `store(java.io.OutputStream stream)` Write the state of the WebModeClientOracle into an OutputStream.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### WebModeClientOracle

          protected WebModeClientOracle()

      Instances of WebModeClientOracle are created either through the `WebModeClientOracle.Builder` class or via the `load(java.io.InputStream)` method.

  - ### Method Detail

    - #### load

          public static WebModeClientOracle load(java.io.InputStream stream)
                                          throws java.io.IOException

      Recreate a WebModeClientOracle based on the contents previously emitted by `store(java.io.OutputStream)`. The underlying format should be considered opaque.
      Throws:
        `java.io.IOException`

    - #### jsniName

          static java.lang.String jsniName(java.lang.Class<?> clazz)

    - #### createCommandSink

          public com.google.gwt.rpc.client.ast.CommandSink createCommandSink(java.io.OutputStream out)
                                                                      throws java.io.IOException

      Description copied from class: `ClientOracle`
      Create a CommandSink that can encode a payload for the client.
      Specified by:
        `createCommandSink` in class `ClientOracle`
      Parameters:
        `out` - the OutputStream to which the output will be written
      Returns:
        a CommandSink
      Throws:
        `java.io.IOException` - if the CommandSink cannot write to the OutputStream

    - #### createUnusedIdent

          public java.lang.String createUnusedIdent(java.lang.String ident)

      Description copied from class: `ClientOracle`
      Returns an identifier that does not conflict with any symbols defined in the client. This method does not accumulate any state.
      Specified by:
        `createUnusedIdent` in class `ClientOracle`

    - #### getCastableTypeData

          public CastableTypeData getCastableTypeData(java.lang.Class<?> clazz)

      Description copied from class: `ClientOracle`
      Returns the Json castableType data for a given type.
      Specified by:
        `getCastableTypeData` in class `ClientOracle`

    - #### getFieldId

          public java.lang.String getFieldId(java.lang.Class<?> clazz,
                                    java.lang.String fieldName)

      Description copied from class: `ClientOracle`
      Given a base type and the unobfuscated field name, find the obfuscated name for the field in the client. This will search superclasses as well for the first matching field.
      Specified by:
        `getFieldId` in class `ClientOracle`

    - #### getFieldId

          public java.lang.String getFieldId(java.lang.Enum<?> value)

      Description copied from class: `ClientOracle`
      Return the field name for a given enum value.
      Specified by:
        `getFieldId` in class `ClientOracle`

    - #### getFieldId

          public java.lang.String getFieldId(java.lang.String className,
                                    java.lang.String fieldName)

      Description copied from class: `ClientOracle`
      This is similar to `ClientOracle.getFieldId(Class, String)` but does not search supertypes. It is intended to be used to access "magic" GWT types.
      Specified by:
        `getFieldId` in class `ClientOracle`

    - #### getFieldName

          public Pair<java.lang.Class<?>,java.lang.String> getFieldName(java.lang.Class<?> clazz,
                                                               java.lang.String fieldId)

      Description copied from class: `ClientOracle`
      Return the name of a field from a client-side id. This will search superclasses for the first instance of the named field.
      Specified by:
        `getFieldName` in class `ClientOracle`
      Returns:
        The field's declaring class and the name of the field

    - #### getMethodId

          public java.lang.String getMethodId(java.lang.Class<?> clazz,
                                     java.lang.String methodName,
                                     java.lang.Class<?>... args)

      This will search superclasses.
      Specified by:
        `getMethodId` in class `ClientOracle`

    - #### getMethodId

          public java.lang.String getMethodId(java.lang.String className,
                                     java.lang.String methodName,
                                     java.lang.String... jsniArgTypes)

      Description copied from class: `ClientOracle`
      This is similar to `ClientOracle.getMethodId(Class, String, Class...)` but does not search supertypes. It is intended to be used to access "magic" GWT types.
      Specified by:
        `getMethodId` in class `ClientOracle`

    - #### getOperableFields

          public java.lang.reflect.Field[] getOperableFields(java.lang.Class<?> clazz)

      Description copied from class: `ClientOracle`
      Returns the fields of a given class that should be serialized. This method does not crawl supertypes.
      Specified by:
        `getOperableFields` in class `ClientOracle`

    - #### getQueryId

          public int getQueryId(java.lang.Class<?> clazz)

      Description copied from class: `ClientOracle`
      Returns the assigned castability queryId of a given type.
      Specified by:
        `getQueryId` in class `ClientOracle`

    - #### getSeedName

          public java.lang.String getSeedName(java.lang.Class<?> clazz)

      Description copied from class: `ClientOracle`
      Returns the name of the top-level function that is used as the seed function for a given type.
      Specified by:
        `getSeedName` in class `ClientOracle`

    - #### getTypeName

          public java.lang.String getTypeName(java.lang.String seedName)

      Description copied from class: `ClientOracle`
      Returns the deobfuscated name of a type based on the name of the type's seed function.
      Specified by:
        `getTypeName` in class `ClientOracle`

    - #### isScript

          public boolean isScript()

      Description copied from class: `ClientOracle`
      Indicates whether or not the remote client is running as compiled script. This may be used to optimize the payload based on assumptions that can be mode about web-mode or hosted-mode clients.
      Specified by:
        `isScript` in class `ClientOracle`

    - #### store

          public void store(java.io.OutputStream stream)
                     throws java.io.IOException

      Write the state of the WebModeClientOracle into an OutputStream. The underlying format should be considered opaque.
      Throws:
        `java.io.IOException`