Class InvitacionImpl

java.lang.Object
es.mdef.gaip_libreria.invitados.InvitacionImpl
All Implemented Interfaces:
Invitacion

public class InvitacionImpl extends Object implements Invitacion
Implementación concreta de la interfaz Invitacion. Esta clase representa una invitación que tiene un tipo de zona específico, un número máximo de invitados permitidos, y un conjunto de invitados asociados a ella. La invitación también está relacionada con un conjunto de invitaciones por acto.
  • Constructor Details

    • InvitacionImpl

      public InvitacionImpl(TipoDeZona tipoDeZona, int numeroMaximoInvitados, InvitacionesPorActo invitacionesPorActo)
      Constructor principal de la clase InvitacionImpl.
      Parameters:
      tipoDeZona - Define el tipo de zona asociada a la invitación.
      numeroMaximoInvitados - Define el límite de invitados que pueden ser asociados a esta invitación.
      invitacionesPorActo - Relación con las invitaciones por acto.
  • Method Details

    • getInvitacionesPorActo

      public InvitacionesPorActo getInvitacionesPorActo()
      Description copied from interface: Invitacion
      Devuelve las invitaciones por acto asociadas a la invitación.
      Specified by:
      getInvitacionesPorActo in interface Invitacion
      Returns:
      el objeto InvitacionesPorActo asociado.
    • setInvitacionesPorActo

      public void setInvitacionesPorActo(InvitacionesPorActo invitacionesPorActo)
      Establece la relación con las invitaciones por acto, manteniendo la coherencia bidireccional.
      Specified by:
      setInvitacionesPorActo in interface Invitacion
      Parameters:
      invitacionesPorActo - Las invitaciones por acto a asociar.
    • setInvitados

      public void setInvitados(Set<Invitado> nuevosInvitados, boolean permitirExcederMaximo)
      Establece los invitados para esta invitación, manteniendo la coherencia bidireccional.
      Specified by:
      setInvitados in interface Invitacion
      Parameters:
      nuevosInvitados - Conjunto de nuevos invitados.
      permitirExcederMaximo - indica si se permite exceder el número máximo de coches permitidos.
    • setCoches

      public void setCoches(Set<Coche> nuevosCoches, boolean permitirExcederMaximo)
      Establece los coches para esta invitación, manteniendo la coherencia bidireccional.
      Specified by:
      setCoches in interface Invitacion
      Parameters:
      nuevosCoches - Conjunto de nuevos invitados.
      permitirExcederMaximo - indica si se permite exceder el número máximo de coches permitidos.
    • agregarInvitado

      public void agregarInvitado(Invitado invitado, boolean permitirExcederMaximo)
      Agrega un invitado a la invitación, manteniendo la coherencia bidireccional.
      Specified by:
      agregarInvitado in interface Invitacion
      Parameters:
      invitado - Invitado a agregar.
      permitirExcederMaximo - indica si se permite exceder el número máximo de coches permitidos.
      Throws:
      IllegalArgumentException - Si el invitado es nulo o si se ha alcanzado el número máximo de invitados.
    • quitarInvitado

      public void quitarInvitado(Invitado invitado)
      Quita un invitado de la invitación, rompiendo la relación bidireccional.
      Specified by:
      quitarInvitado in interface Invitacion
      Parameters:
      invitado - Invitado a quitar.
    • agregarNumeroMaximoInvitado

      public void agregarNumeroMaximoInvitado(int cantidad)
      Aumenta el número máximo de invitados.
      Specified by:
      agregarNumeroMaximoInvitado in interface Invitacion
      Parameters:
      cantidad - Cantidad a aumentar.
      Throws:
      IllegalArgumentException - Si la cantidad es negativa.
    • quitarNumeroMaximoInvitado

      public void quitarNumeroMaximoInvitado(int cantidad)
      Reduce el número máximo de invitados.
      Specified by:
      quitarNumeroMaximoInvitado in interface Invitacion
      Parameters:
      cantidad - Cantidad a reducir.
      Throws:
      IllegalArgumentException - Si la cantidad es negativa o si la reducción excedería el límite actual.
    • agregarCoche

      public void agregarCoche(Coche coche, boolean permitirExcederMaximo)
      Agrega un coche a la invitación, manteniendo la coherencia bidireccional.
      Specified by:
      agregarCoche in interface Invitacion
      Parameters:
      coche - Coche a agregar.
      permitirExcederMaximo - indica si se permite exceder el número máximo de coches permitidos.
    • quitarCoche

      public void quitarCoche(Coche coche)
      Quita un coche de la invitación, rompiendo la relación bidireccional.
      Specified by:
      quitarCoche in interface Invitacion
      Parameters:
      coche - Coche a quitar.