@Override
  protected void handleBatchResults() {
    super.handleBatchResults();
    tokenRequired = getResult(GetSignupTokenRequiredResult.class).get();

    GetSignupTokenResult signupTokenResult = getResult(GetSignupTokenResult.class);
    if (signupTokenResult != null) {
      signUpTokenData = signupTokenResult.get();
    }
    GetProjectInvitationTokenResult projectTokenResult =
        getResult(GetProjectInvitationTokenResult.class);
    if (projectTokenResult != null) {
      projectInvitationTokenData = projectTokenResult.get();
    }
    GetProjectResult projectResult = getResult(GetProjectResult.class);
    if (projectResult != null) {
      projectForInvitationToken = projectResult.get();
      postSignUpPlace = ProjectInvitationPlace.createPlace(signUpToken);
    }
    GetProfileResult gitHubProfileResult = getResult(GetProfileResult.class);
    if (gitHubProfileResult != null) {
      githubProfile = gitHubProfileResult.get();
    }

    if (tokenRequired && !StringUtils.hasText(signUpToken)) {
      ProfileGinjector.get
          .instance()
          .getPlaceProvider()
          .getDefaultPlace()
          .displayOnArrival(Message.createErrorMessage(profileMessages.tokenRequiredForSignUp()))
          .go();
      return;
    } else if (tokenRequired && projectInvitationTokenData == null && signUpTokenData == null) {
      ProfileGinjector.get
          .instance()
          .getPlaceProvider()
          .getDefaultPlace()
          .displayOnArrival(Message.createErrorMessage(profileMessages.invitationTokenNotValid()))
          .go();
      return;
    }

    onPlaceDataFetched();
  }
 @Override
 public String getWindowTitle() {
   return WindowTitleBuilder.createWindowTitle(profileMessages.signUp());
 }
 @Override
 public String getHeading() {
   return profileMessages.signUp();
 }