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

All Methods Instance Methods Abstract Methods Concrete Methods
`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.
`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