Class Asiento

java.lang.Object
model.infraestructura.Asiento
Direct Known Subclasses:
AsientoNormal, AsientoPremium, AsientoVIP

public abstract class Asiento extends Object
Clase abstracta que representa un asiento en una sala de cine. Contiene los atributos y comportamientos comunes a todos los tipos de asientos (Normal, VIP, Premium). Gestiona el estado del asiento (disponible, ocupado, reservado) y sus caracteristicas fisicas como fila, numero, coordenadas, reposabrazos y espacio para piernas.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Field Details

    • idAsiento

      protected String idAsiento
      Identificador unico del asiento.
    • fila

      protected String fila
      Letra de la fila del asiento (A, B, C, ...).
    • numero

      protected int numero
      Numero del asiento dentro de la fila.
    • coordenadaX

      protected int coordenadaX
      Coordenada X en el mapa de la sala.
    • coordenadaY

      protected int coordenadaY
      Coordenada Y en el mapa de la sala.
    • estadoAsiento

      protected String estadoAsiento
      Estado actual del asiento (DISPONIBLE, OCUPADO, RESERVADO).
    • precioBase

      protected BigDecimal precioBase
      Precio base del asiento sin extras.
    • tipoAsiento

      protected String tipoAsiento
      Tipo de asiento (NORMAL, VIP, PREMIUM).
    • ubicacionSala

      protected String ubicacionSala
      Ubicacion de la sala a la que pertenece el asiento.
    • accesibilidadDiscapacitados

      protected boolean accesibilidadDiscapacitados
      Indica si el asiento tiene acceso para discapacitados.
    • tieneReposabrazos

      protected boolean tieneReposabrazos
      Indica si el asiento tiene reposabrazos.
    • espacioPiernas

      protected int espacioPiernas
      Espacio en centimetros para las piernas.
  • Constructor Details

    • Asiento

      public Asiento(String idAsiento, String fila, int numero, BigDecimal precioBase)
      Constructor para crear un nuevo asiento. Inicializa el asiento como DISPONIBLE, con reposabrazos true y espacio para piernas de 80 cm.
      Parameters:
      idAsiento - Identificador unico del asiento
      fila - Letra de la fila del asiento
      numero - Numero del asiento dentro de la fila
      precioBase - Precio base del asiento sin extras
  • Method Details

    • calcularPrecioFinal

      public abstract BigDecimal calcularPrecioFinal()
      Calcula el precio final del asiento aplicando los recargos o descuentos segun el tipo de asiento.
      Returns:
      Precio final del asiento
    • estaDisponible

      public boolean estaDisponible()
      Verifica si el asiento esta disponible para ser ocupado o reservado.
      Returns:
      true si el estado es DISPONIBLE, false en caso contrario
    • ocupar

      public void ocupar()
      Cambia el estado del asiento a OCUPADO. Utilizado cuando un cliente ocupa el asiento en una funcion.
    • reservar

      public void reservar()
      Cambia el estado del asiento a RESERVADO. Utilizado cuando un cliente reserva el asiento temporalmente.
    • liberar

      public void liberar()
      Cambia el estado del asiento a DISPONIBLE. Utilizado cuando se cancela una reserva o se libera el asiento.
    • getIdAsiento

      public String getIdAsiento()
      Returns:
      Identificador unico del asiento
    • setIdAsiento

      public void setIdAsiento(String idAsiento)
      Parameters:
      idAsiento - Nuevo identificador del asiento
    • getFila

      public String getFila()
      Returns:
      Letra de la fila del asiento
    • setFila

      public void setFila(String fila)
      Parameters:
      fila - Nueva letra de fila
    • getNumero

      public int getNumero()
      Returns:
      Numero del asiento
    • setNumero

      public void setNumero(int numero)
      Parameters:
      numero - Nuevo numero de asiento
    • getCoordenadaX

      public int getCoordenadaX()
      Returns:
      Coordenada X del asiento
    • setCoordenadaX

      public void setCoordenadaX(int coordenadaX)
      Parameters:
      coordenadaX - Nueva coordenada X
    • getCoordenadaY

      public int getCoordenadaY()
      Returns:
      Coordenada Y del asiento
    • setCoordenadaY

      public void setCoordenadaY(int coordenadaY)
      Parameters:
      coordenadaY - Nueva coordenada Y
    • getEstadoAsiento

      public String getEstadoAsiento()
      Returns:
      Estado actual del asiento (DISPONIBLE, OCUPADO, RESERVADO)
    • setEstadoAsiento

      public void setEstadoAsiento(String estadoAsiento)
      Parameters:
      estadoAsiento - Nuevo estado del asiento
    • getPrecioBase

      public BigDecimal getPrecioBase()
      Returns:
      Precio base del asiento
    • setPrecioBase

      public void setPrecioBase(BigDecimal precioBase)
      Parameters:
      precioBase - Nuevo precio base
    • getTipoAsiento

      public String getTipoAsiento()
      Returns:
      Tipo de asiento (NORMAL, VIP, PREMIUM)
    • setTipoAsiento

      public void setTipoAsiento(String tipoAsiento)
      Parameters:
      tipoAsiento - Nuevo tipo de asiento
    • getUbicacionSala

      public String getUbicacionSala()
      Returns:
      Ubicacion de la sala
    • setUbicacionSala

      public void setUbicacionSala(String ubicacionSala)
      Parameters:
      ubicacionSala - Nueva ubicacion de sala
    • isAccesibilidadDiscapacitados

      public boolean isAccesibilidadDiscapacitados()
      Returns:
      true si tiene accesibilidad para discapacitados
    • setAccesibilidadDiscapacitados

      public void setAccesibilidadDiscapacitados(boolean accesibilidadDiscapacitados)
      Parameters:
      accesibilidadDiscapacitados - Nueva condicion de accesibilidad
    • isTieneReposabrazos

      public boolean isTieneReposabrazos()
      Returns:
      true si tiene reposabrazos
    • setTieneReposabrazos

      public void setTieneReposabrazos(boolean tieneReposabrazos)
      Parameters:
      tieneReposabrazos - Nueva condicion de reposabrazos
    • getEspacioPiernas

      public int getEspacioPiernas()
      Returns:
      Espacio en centimetros para piernas
    • setEspacioPiernas

      public void setEspacioPiernas(int espacioPiernas)
      Parameters:
      espacioPiernas - Nuevo espacio para piernas
    • toString

      public String toString()
      Devuelve una representacion textual del asiento. Formato: "fila + numero (tipo) - $precioBase"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal del asiento