class Presenter {

  public final void takeView(V view) {
    if (view == null) throw new NullPointerException("new view must not be null");

    if (this.view != view) {
      if (this.view != null) dropView(this.view);

      this.view = view;
      extractBundleService(view).register(registration);
    }
  }

}