final String expiresToken,
final String username,
final SocialUserProfile socialUserProfile,
final SocialProvider socialProvider,
final UserAccount userAccount) {
final SocialAccount socialAccount = new SocialAccount();
socialAccount.setAccessToken(token);
socialAccount.setSecretToken(tokenSecret);
socialAccount.setAccount(userAccount.getAccount());
socialAccount.setUserOwner(userAccount);
socialAccount.setExpires(expiresToken);
socialAccount.setAccounType(socialProvider);
socialAccount.setAddedAccount(new Date());
socialAccount.setVerfied(Boolean.TRUE);
socialAccount.setSocialAccountName(socialUserProfile.getUsername());
socialAccount.setType(SocialProvider.getTypeAuth(socialProvider));
socialAccount.setUpgradedCredentials(new Date());
socialAccount.setSocialProfileId(socialUserProfile.getId());
socialAccount.setPublicProfileUrl(socialUserProfile.getProfileUrl());
socialAccount.setPrictureUrl(socialUserProfile.getProfileImageUrl()); //TODO: repeated
socialAccount.setProfilePictureUrl(socialUserProfile.getProfileImageUrl());
socialAccount.setEmail(socialUserProfile.getEmail());
socialAccount.setProfileThumbnailPictureUrl(socialUserProfile.getProfileImageUrl());
socialAccount.setRealName(socialUserProfile.getRealName());
this.saveOrUpdate(socialAccount);
return socialAccount;
}