code: public static <S, E> EventCallbackBuilder<S, E> builder(@Nonnull CallbackConfig config,
                                                              @Nonnull TypeToken<E> errorTypeToken) {
          return new EventCallbackBuilder<S, E>(config, errorTypeToken);
      }
docs: Returns builder that creates {@link EventCallback}.
  <p>
  To avoid passing all arguments on each callback creation it is suggested
  to wrap this call in project. For example:
  <p>
  <pre><code class="java">
  class MyEventCallback&lt;S&gt; {
  <p>
  CallbackConfig config = injected;
  private EventCallbackBuilder&lt;S, MyHandledErrorMsg&gt; builder() {
  return EventCallback.builder(config, new TypeToken&lt;MyHandledErrorMsg&gt;(){});
  }
  <p>
  public static &lt;S&gt; EventCallbackBuilder&lt;S, MyHandledErrorMsg&gt; ofType() {
  return new MyEventCallback&lt;S&gt;().builder(responseType);
  }
  }
  </code></pre>
  
  @param <S>            Type of response returned by server onSuccess
  @param <E>            Type of response returned by server onError
  @param config         Shared configuration
  @param errorTypeToken TypeToken that provides information about expected
  response returned by server
  @return Builder that assists in creating valid EventCallback in readable
  way.