@NotNull
protected JMethod createDeserializeMethodStub( @NotNull JType domainType, @NotNull JDefinedClass serializerClass ) {
JMethod deserializeMethod = serializerClass.method( JMod.PUBLIC, domainType, METHOD_NAME_DESERIALIZE );
deserializeMethod.param( getSerializeFromType(), METHOD_NAME_DESERIALIZE_FROM );
deserializeMethod.param( Version.class, PARAM_NAME_FORMAT_VERSION );
deserializeMethod.annotate( Override.class );
deserializeMethod._throws( IOException.class )._throws( VersionException.class )._throws( getExceptionType() );
for ( Decorator decorator : codeGenerator.getMethodDecorators() ) {
if ( decorator instanceof GeneratorDecorator ) {
( ( GeneratorDecorator ) decorator ).decorateDeserializeMethod( codeGenerator, domainType, serializerClass, deserializeMethod );