Interface SimulationServiceInterface

All Known Implementing Classes:
SimulationService

public interface SimulationServiceInterface
Define las operaciones de negocio para administrar usuarios, coordinar tableros y gestionar solicitudes de simulación.
  • Method Details

    • getUser

      User getUser(User user)
      Recupera un usuario en memoria o lo crea si no existe.

      Precondición: user no es nulo y tiene un nombre asignado.

      Postcondición: Funciona como caché. Si el usuario ya está registrado, devuelve la misma referencia en memoria. Si no existe, lo instancia, lo guarda en la colección y lo devuelve conservando su nombre intacto.

      Parameters:
      user - el objeto usuario usado para buscar o registrar.
      Returns:
      la instancia persistente del usuario en el sistema.
    • existsSimulation

      boolean existsSimulation(User user, int token)
      Comprueba si una simulación pertenece a un usuario concreto.

      Precondición: user no es nulo.

      Postcondición: Devuelve verdadero si el sistema certifica que el token consta en el registro de peticiones del usuario. Devuelve falso si el usuario no es propietario de dicho token.

      Parameters:
      user - el usuario que hace la solicitud.
      token - el identificador de la simulación a verificar.
      Returns:
      verdadero si el token pertenece al usuario, falso en caso contrario.
    • getSimulationStatus

      SimulationStatus getSimulationStatus(User user, int token)
      Consulta el estado de una simulación vinculada a un usuario.

      Precondición: user no es nulo y es el propietario real del token indicado.

      Postcondición: Delega la consulta y retorna el estado exacto extraído directamente desde el gestor interno de esa simulación.

      Parameters:
      user - el usuario propietario de la simulación.
      token - el identificador de la simulación.
      Returns:
      el estado de ejecución actual de la simulación solicitada.
    • getSimulationResult

      SimulationResult getSimulationResult(User user, int token)
      Recupera el resultado histórico de una simulación específica de un usuario.

      Precondición: user no es nulo y es el propietario real del token indicado.

      Postcondición: Extrae y devuelve el historial completo del tablero expuesto por el gestor subyacente de la simulación.

      Parameters:
      user - el usuario propietario de la simulación.
      token - el identificador de la simulación.
      Returns:
      el objeto con el historial de resultados devuelto por el gestor.
    • getUserTokens

      Collection<Integer> getUserTokens(User user)
      Lista todos los identificadores de simulación registrados a nombre de un usuario.

      Precondición: user no es nulo.

      Postcondición: Devuelve una colección que agrupa todos los tokens solicitados históricamente por el usuario. La colección nunca es nula, aunque el usuario no tenga simulaciones.

      Parameters:
      user - el usuario a consultar.
      Returns:
      una colección con los tokens pertenecientes al usuario.
    • requestSimulation

      int requestSimulation(User user, Request request)
      Orquesta la creación, configuración y arranque de una nueva simulación para un usuario.

      Precondición: user y request no son nulos. Las cantidades iniciales en la solicitud son enteros no negativos.

      Postcondición: Construye un tablero de tamaño dinámico, lo puebla aleatoriamente con las criaturas solicitadas, arranca asíncronamente los cálculos de turnos y amarra la petición a la cuenta del usuario. Devuelve un token válido superior o igual a cero.

      Parameters:
      user - el usuario que solicita crear la simulación.
      request - el objeto con la especificación de criaturas a incluir.
      Returns:
      el nuevo token numérico asignado a la simulación.