package foundation.user; import foundation.token.IOnlineUser; import foundation.token.IUserManager; import foundation.token.UserToken; import foundation.util.Util; import foundation.variant.provider.VariantCenter; public class UserManager extends IUserManager { private static UserManager instance; private UserManager() { VariantCenter center = VariantCenter.getInstance(); center.registTransiant(User.VariantNames, User.ProviderName, User.class); } public static synchronized UserManager getInstance() { if (instance == null) { instance = new UserManager(); } return instance; } @Override public IOnlineUser createUser(String token) { UserToken userToken = UserToken.getInstance(token); String userId = userToken.getUserId(); String onlineCode = userToken.getOnlineCode(); if (Util.isEmpty(userId) || (!userToken.validate())) { return null; } User user = User.getInstance(userId); if (user == null) { return null; } IOnlineUser onlineUser = new OnlineUser(onlineCode, user); IOnlineUser.setLocal(onlineUser); return onlineUser; } @Override public IOnlineUser getUser() { return OnlineUser.getInstance(); } }