Class AppContext

java.lang.Object
it.unisa.diem.wordageddon_g16.models.AppContext
All Implemented Interfaces:
Serializable

public class AppContext extends Object implements Serializable
Classe che rappresenta il contesto dell'applicazione.

Fornisce un punto di accesso condiviso a tutti le classi service e DAO, mantenendo anche lo stato globale dell'app, come l'utente corrente e il report di gioco attivo.

See Also:
  • Field Details

    • repo

      private final Repository repo
      Repository contenente tutti i DAO per l'accesso al database.
    • authService

      private final AuthService authService
      AuthService per l'autenticazione e la gestione degli utenti.
    • leaderboardService

      private final LeaderboardService leaderboardService
      Servizio per la gestione della leaderboard.
    • userPanelService

      public final UserPanelService userPanelService
      Servizio per la gestione del pannello utente.
    • gameService

      private final GameService gameService
      Servizio per la logica di gioco, gestione domande e risultati.
    • currentUser

      private User currentUser
      Utente attualmente autenticato nel sistema.
    • interruptedSession

      private GameSessionState interruptedSession
      Sessione di gioco interrotta, utile per riprendere il gioco in caso di interruzione.
  • Constructor Details

    • AppContext

      public AppContext(Repository repo)
      Costruisce un nuovo contesto dell'applicazione inizializzando tutte le classi service con i rispettivi DAO dal repository.
      Parameters:
      repo - il repository contenente i DAO per l'accesso al database
  • Method Details

    • getInterruptedSession

      public GameSessionState getInterruptedSession()
      Restituisce la sessione di gioco interrotta, se presente.
      Returns:
      la sessione di gioco interrotta
    • setInterruptedSession

      public void setInterruptedSession(GameSessionState interruptedSession)
      Imposta la sessione di gioco interrotta.

      Questa sessione può essere utilizzata per riprendere il gioco in caso di interruzione.

      Parameters:
      interruptedSession - la sessione di gioco da impostare come interrotta
    • getAuthService

      public AuthService getAuthService()
      Restituisce il servizio di autenticazione.
      Returns:
      il servizio AuthService
    • getLeaderboardService

      public LeaderboardService getLeaderboardService()
      Restituisce il servizio della leaderboard.
      Returns:
      il servizio LeaderboardService
    • getUserPanelService

      public UserPanelService getUserPanelService()
      Restituisce il servizio per la gestione del pannello utente.
      Returns:
      il servizio UserPanelService
    • getGameService

      public GameService getGameService()
      Restituisce il servizio di gioco.
      Returns:
      il servizio GameService
    • getCurrentUser

      public User getCurrentUser()
      Restituisce l'utente attualmente autenticato nel sistema.
      Returns:
      l'utente corrente, o null se nessuno è loggato
    • setCurrentUser

      public void setCurrentUser(User currentUser)
      Imposta l'utente attualmente autenticato nel sistema.
      Parameters:
      currentUser - l'utente da impostare come corrente
    • getRepo

      public Repository getRepo()
      Restituisce il repository contenente tutti i DAO.
      Returns:
      il repository in uso