public String getPrefix() {
   if (StringUtils.hasText(signUpToken)) {
     LinkedHashMap<String, String> tokenMap = new LinkedHashMap<String, String>();
     tokenMap.put(TOKEN, signUpToken);
     return SignUp.getUrlForNamedArgs(tokenMap);
   } else {
     return SignUp.getUrl();
   }
 }
    @Override
    public SignUpPlace getPlace(String token) {
      // Tokenize our URL now.
      Args pathArgs = getPathArgsForUrl(token);

      String signupToken = pathArgs.getString(TOKEN);

      if (StringUtils.hasText(signupToken)) {
        return createPlace(signupToken);
      } else {
        return createPlace();
      }
    }
  @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();
  }