/** * Copyright (C) 2011 Talend Inc. - www.talend.com */ package oauth2.service; import java.util.concurrent.ConcurrentHashMap; public class UserAccounts { private ConcurrentHashMap<String, UserAccount> accounts = new ConcurrentHashMap<String, UserAccount>(); private ConcurrentHashMap<String, UserAccount> accountAliases = new ConcurrentHashMap<String, UserAccount>(); public void setAccount(String userName, UserAccount account) { accounts.putIfAbsent(userName, account); if (account.getAccountAlias() != null) { accountAliases.putIfAbsent(account.getAccountAlias(), account); } } public UserAccount getAccount(String name) { return accounts.get(name); } public UserAccount getAccountWithAlias(String alias) { return accountAliases.get(alias); } public UserAccount removeAccount(String name) { UserAccount account = accounts.remove(name); if (account != null && account.getAccountAlias() != null) { accountAliases.remove(account.getAccountAlias()); } return account; } }