Interface Anfitrion

All Superinterfaces:
Comparable<Anfitrion>, Persona
All Known Implementing Classes:
AnfitrionImpl

public interface Anfitrion extends Persona, Comparable<Anfitrion>
Interfaz que define las características y comportamientos específicos de un anfitrión.

Un anfitrión es una entidad capaz de invitar a personas a diversos actos, y está vinculado a una unidad de formación. Gestiona un conjunto de invitaciones extendidas para cada acto. Esta interfaz extiende a Persona, heredando sus propiedades y comportamientos.

  • Method Details

    • getActos

      Set<Acto> getActos()
      Obtiene los actos asociados al anfitrión.
      Returns:
      Conjunto de actos a los que el anfitrión ha invitado o planea invitar personas.
    • setActos

      <T extends Acto> void setActos(Set<T> actos)
      Establece los actos asociados al anfitrión.
      Parameters:
      actos - Conjunto de actos.
    • getUnidadDeFormacion

      String getUnidadDeFormacion()
      Obtiene la unidad de formación del anfitrión.
      Returns:
      Identificador o nombre de la unidad de formación a la que pertenece el anfitrión.
    • setUnidadDeFormacion

      void setUnidadDeFormacion(String unidadDeFormacion)
      Define la unidad de formación a la que pertenece el anfitrión.
      Parameters:
      unidadDeFormacion - Identificador o nombre de la unidad de formación.
    • getEmpleo

      String getEmpleo()
      Obtiene el empleo del anfitrión.
      Returns:
      el empleo del anfitrión.
    • setEmpleo

      void setEmpleo(String empleo)
      Define el empleo del anfitrión.
      Parameters:
      empleo - el empleo del anfitrión.
    • getInvitacionesPorActo

      Set<InvitacionesPorActo> getInvitacionesPorActo()
      Obtiene las invitaciones por acto que el anfitrión ha extendido.
      Returns:
      Conjunto de invitaciones por acto asociadas al anfitrión.
    • setInvitacionesPorActo

      <T extends InvitacionesPorActo> void setInvitacionesPorActo(Set<T> invitacionesPorActo)
      Establece las invitaciones por acto que el anfitrión ha extendido.
      Parameters:
      invitacionesPorActo - Conjunto de invitaciones por acto.
    • agregarInvitacionesPorActo

      void agregarInvitacionesPorActo(InvitacionesPorActo invitacionesPorActo)
      Agrega una invitación por acto al conjunto de invitaciones del anfitrión.
      Parameters:
      invitacionesPorActo - Invitación por acto a agregar.
    • quitarInvitacionesPorActo

      void quitarInvitacionesPorActo(InvitacionesPorActo invitacionesPorActo)
      Elimina una invitación por acto del conjunto de invitaciones del anfitrión.
      Parameters:
      invitacionesPorActo - Invitación por acto a eliminar.
    • agregarActo

      void agregarActo(Acto acto)
      Agrega un acto al conjunto de actos a los que el anfitrión invitará personas.
      Parameters:
      acto - Acto a agregar.
    • quitarActo

      void quitarActo(Acto acto)
      Elimina un acto del conjunto de actos a los que el anfitrión invitará personas.
      Parameters:
      acto - Acto a eliminar.
    • agregarInvitados

      default <T extends Invitado> void agregarInvitados(Acto acto, Collection<T> invitados, boolean permitirExcederMaximo)
      Agrega un conjunto de invitados al acto especificado, con la opción de superar el máximo permitido.
      Type Parameters:
      T - Tipo genérico que extiende de Invitado.
      Parameters:
      acto - Acto al cual agregar los invitados.
      invitados - Conjunto de invitados a agregar.
      permitirExcederMaximo - Indica si se permite superar el número máximo de invitados.
    • agregarInvitado

      default void agregarInvitado(Acto acto, Invitado invitado, boolean superarMaximo)
      Agrega un invitado al acto especificado.
      Parameters:
      acto - Acto al cual agregar el invitado.
      invitado - Invitado a agregar.
    • agregarInvitado

      default void agregarInvitado(Acto acto, Invitado invitado, TipoDeZona tipoDeZona, boolean superarMaximo)
      Agrega un invitado al acto especificado.
      Parameters:
      acto - Acto al cual agregar el invitado.
      invitado - Invitado a agregar.
      tipoDeZona - Tipo de zona al que pertenece el invitado.
    • quitarInvitado

      default void quitarInvitado(Acto acto, Invitado invitado)
      Quita un invitado de un acto específico. La invitación se retira de la zona específica a la que estaba asignado el invitado.
      Parameters:
      acto - El acto del cual quitar el invitado.
      invitado - El invitado a quitar.
    • getNumeroInvitadosDeUnActoPorZona

      default long getNumeroInvitadosDeUnActoPorZona(Acto acto, TipoDeZona tipoDeZona)
      Devuelve el número de invitados de un acto en una zona específica.
      Parameters:
      acto - Acto específico.
      tipoDeZona - Tipo de zona específico.
      Returns:
      Número de invitados de un acto en una zona específica.
    • getNumeroInvitadosSinAsignarDeUnActoPorZona

      default long getNumeroInvitadosSinAsignarDeUnActoPorZona(Acto acto, TipoDeZona tipoDeZona)
      Devuelve el número de invitados sin asignar de un acto en una zona específica.
      Parameters:
      acto - Acto específico.
      tipoDeZona - Tipo de zona específico.
      Returns:
      Número de invitados sin asignar de un acto en una zona específica.
    • getInvitadosSinAsignarDeUnActo

      default Set<Invitado> getInvitadosSinAsignarDeUnActo(Acto acto)
      Devuelve los invitados de un acto sin asignar.
      Parameters:
      acto - Acto específico.
      Returns:
      Conjunto de invitados sin asignar de un acto.
    • getInvitadosSinAsignarDeUnActoPorZona

      default Set<Invitado> getInvitadosSinAsignarDeUnActoPorZona(Acto acto, TipoDeZona tipoDeZona)
      Devuelve los invitados de un acto sin asignar en una zona específica.
      Parameters:
      acto - Acto específico.
      tipoDeZona - Tipo de zona específica.
      Returns:
      Conjunto de invitados sin asignar de un acto en una zona específica.
    • getInvitadosAUnActo

      default Set<Invitado> getInvitadosAUnActo(Acto acto)
      Devuelve los invitados de un acto.
      Parameters:
      acto - Acto específico.
      Returns:
      Conjunto de invitados de un acto.
    • getInvitadosAUnActoPorZona

      default Set<Invitado> getInvitadosAUnActoPorZona(Acto acto, TipoDeZona tipoDeZona)
      Devuelve los invitados de un acto en una zona específica.
      Parameters:
      acto - Acto específico.
      tipoDeZona - Tipo de zona específica.
      Returns:
      Conjunto de invitados de un acto en una zona específica.
    • getInvitacionPorTipoDeZona

      default Invitacion getInvitacionPorTipoDeZona(Acto acto, TipoDeZona tipoDeZona)
      Devuelve la invitación por tipo de zona de un acto.
      Parameters:
      acto - Acto específico.
      tipoDeZona - Tipo de zona específica.
      Returns:
      Invitación por tipo de zona de un acto.
    • compararPorCantidadDeInvitadosDeUnTipoDeZona

      int compararPorCantidadDeInvitadosDeUnTipoDeZona(Acto acto, TipoDeZona tipo, Anfitrion anfitrion1, Anfitrion anfitrion2)
      Compara dos anfitriones por la cantidad de invitados de un tipo de zona en un acto específico.
      Parameters:
      acto - Acto específico para la comparación.
      tipo - Tipo de zona específico para la comparación.
      anfitrion1 - Primer anfitrión a comparar.
      anfitrion2 - Segundo anfitrión a comparar.
      Returns:
      Valor negativo, cero o positivo si el primer anfitrión tiene menos, igual o más invitados que el segundo anfitrión, respectivamente.
    • getCochesSinAsignarDeUnActo

      default Set<Coche> getCochesSinAsignarDeUnActo(Acto acto)
      Obtiene un conjunto de coches sin asignar para un acto específico. Considera solo aquellos coches en la zona de estacionamiento (PARKING).
      Parameters:
      acto - El acto para el cual obtener los coches sin asignar.
      Returns:
      Conjunto de coches sin localidad asignada en la zona de estacionamiento para el acto especificado.
    • tieneInvitaciones

      default boolean tieneInvitaciones(Acto acto)
      Determina si el anfitrión tiene invitaciones asignadas para un acto específico.
      Parameters:
      acto - El acto a verificar.
      Returns:
      true si hay al menos una invitación con localidad asignada para el acto, false en caso contrario.