private UserAccount createUserAccount(String login, String password) {
   UserAccount userAccount = new UserAccount();
   userAccount.setLogin(login);
   userAccount.setPassword(password);
   userAccount.setToken(getToken());
   return userAccount;
 }
  @Override
  public void setAsDefaultUser(UserAccount user, boolean isDefault) {
    if (isDefault) {
      // set other users to false - only one user can be a default user
      List<UserAccount> userAccounts = userAccountRepository.getAllUsers();

      for (UserAccount userAccount : userAccounts) {
        userAccount.setDefaultUser(false);
        updateUserAccount(userAccount);
      }
    }

    user.setDefaultUser(isDefault);
    updateUserAccount(user);
  }
 private void saveUserInSession(String login, String password) {
   USER_ACCOUNT = userAccountRepository.getUserAccountByLogin(login);
   if (USER_ACCOUNT == null) {
     // save in database - first login
     USER_ACCOUNT = createUserAccount(login, password);
     saveUserAccount(USER_ACCOUNT);
   } else {
     // update token in database
     USER_ACCOUNT.setToken(getToken());
     updateUserAccount(USER_ACCOUNT);
   }
 }
 @Override
 public boolean logAsDefault() throws SynchronizationException {
   UserAccount defaultUser = getDefaultUser();
   if (defaultUser != null) return logIn(defaultUser.getLogin(), defaultUser.getPassword());
   else return false;
 }
 @Override
 public void changeLanguagePreferenceForUser(UserAccount user, UserAccount.Language language) {
   user.setLanguage(language);
   updateUserAccount(user);
 }