[app-wiring-refactor]: Remove static initialisation

- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
This commit is contained in:
Francesco Burato 2020-10-30 17:37:12 +00:00
parent cf3dd2d94c
commit d0c2135e17
48 changed files with 1385 additions and 911 deletions

View file

@ -0,0 +1,41 @@
package mage.server.managers;
import mage.server.AuthorizedUser;
import mage.server.DisconnectReason;
import mage.server.User;
import mage.view.UserView;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
public interface IUserManager {
Optional<User> createUser(String userName, String host, AuthorizedUser authorizedUser);
Optional<User> getUser(UUID userId);
Optional<User> getUserByName(String userName);
Collection<User> getUsers();
boolean connectToSession(String sessionId, UUID userId);
void disconnect(UUID userId, DisconnectReason reason);
boolean isAdmin(UUID userId);
void removeUserFromAllTablesAndChat(UUID userId, DisconnectReason reason);
void informUserOpponents(UUID userId, String message);
boolean extendUserSession(UUID userId, String pingInfo);
List<UserView> getUserInfoList();
void handleException(Exception ex);
String getUserHistory(String userName);
void updateUserHistory();
}