package cactusServer.models; import javax.inject.Singleton; import cactusServer.entities.Account; import java.util.HashMap; import java.util.HashSet; @Singleton public class Accounts { private static Accounts theInstance = null; private HashMap<String, Account> accounts = new HashMap<>(); private HashSet<String> idSet = new HashSet<String>(); private Accounts() { } public static Accounts getInstance() { if (theInstance == null) { theInstance = new Accounts(); } return theInstance; } public Account createAcount(String userID, String userName, String userPass) { System.out.println(userName); if (!idSet.add(userID)) { return null; } Account newAccount = new Account(userName, userPass); accounts.put(userID, newAccount); newAccount.formToken(); System.out.println(userID); return newAccount; } public Account updateAccount(String userID, String userName, String userPass) { if (idSet.contains(userID)) { Accounts.getInstance().getAccount(userID).setName(userName); Accounts.getInstance().getAccount(userID).setPass(userPass); return Accounts.getInstance().getAccount(userID); } else { return null; } } public Account getAccount(String userID) { if (idSet.contains(userID)) { Account editAccount = accounts.get(userID); return editAccount; } else { return null; } } public Account loginAccount(String userID, String userPass) { if (idSet.contains(userID) && getAccount(userID).getPass().equals(userPass)) { Accounts.getInstance().getAccount(userID).setLogin(true); return getAccount(userID); } else { return null; } } public String logoutAccount(String userID) { if (idSet.contains(userID)) { Accounts.getInstance().getAccount(userID).setLogin(false); return "success"; } else { return "failed"; } } public String deleteAccount(String userID) { if (idSet.contains(userID)) { accounts.remove(userID); idSet.remove(userID); return "complated remove account"; } else { return "not exist"; } } }