I did eventually find documentation on the custom field serialization
API. It is my belief that it is a bad approach.
I do not understand why they did not make a marker interface, let's
call it "HasCustomSerialization", that GWT would use to identify
classes with custom serialization. Example:
public class Example implements IsSerializable,
HasCustomSerialization
{
private final int a;
private final int b;
public Example(int a,int b)
{
this.a=a;
this.b=b;
}
//Serialization Methods
private static Example instantiate(...){...}
private static void deserialize(...){...}
private static void serialize(...){...}
// getters ...
}
This puts all of the methods required for serialization in one place,
instead of making a shadow class. Additionally, this overcomes
problems with private inner classes - the other serialization method
cannot directly instantiate a private inner class of the class it is
serializing/de-serializing.