code: public Optional<JClassType> getClassFromJsonDeserializeAnnotation( TreeLogger logger, Annotation annotation, String name ) {
          try {
              Class asClass = (Class) annotation.getClass().getDeclaredMethod( name ).invoke( annotation );
              if ( asClass != Void.class ) {
                  return Optional.fromNullable( getType( asClass.getCanonicalName() ) );
              }
          } catch ( Exception e ) {
              logger.log( Type.ERROR, "Cannot find method " + name + " on JsonDeserialize annotation", e );
          }
          return Optional.absent();
      }
docs: <p>getClassFromJsonDeserializeAnnotation</p>
  
  @param logger a {@link com.google.gwt.core.ext.TreeLogger} object.
  @param annotation a {@link java.lang.annotation.Annotation} object.
  @param name a {@link java.lang.String} object.
  @return a {@link com.google.gwt.thirdparty.guava.common.base.Optional} object.