com.google.gwt.user.server.rpc

## Class SerializationPolicy

- java.lang.Object
- - com.google.gwt.user.server.rpc.SerializationPolicy

-     public abstract class SerializationPolicy
      extends java.lang.Object

  This is an abstract class for representing the serialization policy for a given module and `RemoteService`. The serialize and deserialize queries are from the perspective of the server, not the web browser.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SerializationPolicy()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<java.lang.String>` | `getClientFieldNamesForEnhancedClass(java.lang.Class<?> clazz)` Returns the field names of the given class known to the client for classes that are expected to be enhanced on the server to have additional fields, or null for classes that are not expected to be enhanced.
    `abstract boolean` | `shouldDeserializeFields(java.lang.Class<?> clazz)` Returns `true` if the class' fields should be deserialized.
    `abstract boolean` | `shouldSerializeFields(java.lang.Class<?> clazz)` Returns `true` if the class' fields should be serialized.
    `abstract void` | `validateDeserialize(java.lang.Class<?> clazz)` Validates that the specified class should be deserialized from a stream.
    `abstract void` | `validateSerialize(java.lang.Class<?> clazz)` Validates that the specified class should be serialized into a stream.

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

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

- - ### Constructor Detail

    - #### SerializationPolicy

          public SerializationPolicy()

  - ### Method Detail

    - #### getClientFieldNamesForEnhancedClass

          public java.util.Set<java.lang.String> getClientFieldNamesForEnhancedClass(java.lang.Class<?> clazz)

      Returns the field names of the given class known to the client for classes that are expected to be enhanced on the server to have additional fields, or null for classes that are not expected to be enhanced.
      Parameters:
        `clazz` - the class to test
      Returns:
        a set containing client field names, or null

    - #### shouldDeserializeFields

          public abstract boolean shouldDeserializeFields(java.lang.Class<?> clazz)

      Returns `true` if the class' fields should be deserialized.
      Parameters:
        `clazz` - the class to test
      Returns:
        `true` if the class' fields should be deserialized

    - #### shouldSerializeFields

          public abstract boolean shouldSerializeFields(java.lang.Class<?> clazz)

      Returns `true` if the class' fields should be serialized.
      Parameters:
        `clazz` - the class to test
      Returns:
        `true` if the class' fields should be serialized

    - #### validateDeserialize

          public abstract void validateDeserialize(java.lang.Class<?> clazz)
                                            throws SerializationException

      Validates that the specified class should be deserialized from a stream.
      Parameters:
        `clazz` - the class to validate
      Throws:
        `SerializationException` - if the class is not allowed to be deserialized

    - #### validateSerialize

          public abstract void validateSerialize(java.lang.Class<?> clazz)
                                          throws SerializationException

      Validates that the specified class should be serialized into a stream.
      Parameters:
        `clazz` - the class to validate
      Throws:
        `SerializationException` - if the class is not allowed to be serialized