Package 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 | Description
    --- | ---
    `SerializationPolicy()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | 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.
    `boolean` | `hasClientFields()` | Returns true if there may be any unsafe client fields in the serialization policy.
    `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.
    `boolean` | `shouldSerializeFinalFields()` | Returns whether the client was compiled with `rpc.XserializeFinalFields = true`.
    `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

    - #### shouldSerializeFinalFields

          public boolean shouldSerializeFinalFields()

      Returns whether the client was compiled with `rpc.XserializeFinalFields = true`.

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

    - #### hasClientFields

          public boolean hasClientFields()

      Returns true if there may be any unsafe client fields in the serialization policy. The default implementation returns true to ensure that custom implementations validate accordingly.
      Returns:
        true if the client may send unsafely serialized data, false otherwise