edu.whs.spin2018.baoapp.service.lobby

## Class LobbyServiceInteractor

- java.lang.Object
- - edu.whs.spin2018.baoapp.service.ServiceInteractor
  - - edu.whs.spin2018.baoapp.service.lobby.LobbyServiceInteractor

- All Implemented Interfaces:
    BaoServiceInterface, BaseInteractorInterface, LobbyEventListener, LobbyRemoteDataSource

      public class LobbyServiceInteractor
      extends ServiceInteractor
      implements LobbyRemoteDataSource

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LobbyServiceInteractor(BaoService serviceInterface)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `entferneRegistrierteListener()` Entfernt die zusätzlichen registrierten Listener vom Socket.
    `void` | `geheInLobby()` Tritt der Lobby bei.
    `void` | `geheInNeuenRaum(java.lang.String neuerRaum)` Tritt einem neuen Raum bei.
    `void` | `ladeBenutzerInLobby()` Fordert die Benutzer aus der Lobby an.
    `void` | `lehneHerausforderungAb(java.lang.String absenderUUID)` Sendet dem Herausforderer, dass die Herausforderung abgelehnt wurde.
    `void` | `nimmHerausforderungAn(java.lang.String gegnerUUID)` Sendet dem Herausforderer, dass die Herausforderung angenommen wurde.
    `void` | `onBenutzerlisteErhalten(java.util.List<Benutzer> benutzerliste)`
    `void` | `onBenutzerTrittRaumBeiErhalten(Benutzer benutzer)`
    `void` | `onBenutzerVerlaesstRaumErhalten(Benutzer benutzer)`
    `void` | `onHerausforderungAngenommenErhalten()`
    `void` | `onHerausforderungBeendetErhalten()`
    `void` | `onHerausforderungErhalten(Benutzer absender)`
    `void` | `onNeueNachricht(java.lang.Object... args)` Wird beim erhalten eines Nachricht-Events aufgerufen.
    `void` | `registriereBenoetigteListener()` Registriert, zusätzlich zum Nachrichten-Event Listener, weitere Listener am Socket
    `void` | `sendeHerausforderung(java.lang.String empfaengerUUID, Benutzer ich)` Sendet eine Herausforderung an den angegeben Benutzer.
    `void` | `setzeListener(LobbyEventListener listener)` Setzt einen Listener, der bei einkommenden Events benachrichtigt wird.
    `void` | `verlasseAktuellenRaum()` Verlaesst den aktuellen Raum.
    `void` | `verlasseLobby()` Verlaesst die Lobby in dem der Raum "Lobby" verlassen wird.

    - ### Methods inherited from class edu.whs.spin2018.baoapp.service.ServiceInteractor

      `entferneListener, raumBetreten, raumVerlassen, registriereBenutzerListeErhaltenListener, registriereBenutzerTrittRaumBeiListener, registriereBenutzerVerlaesstRaumListener, registriereNachrichtenListener, registriereVerbundenListener, sendeBroadcast, sendeNachricht, trennen, verbinden, zeigeBenutzerImRaum`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface edu.whs.spin2018.baoapp.service.BaoServiceInterface

      `entferneListener, raumBetreten, raumVerlassen, registriereBenutzerListeErhaltenListener, registriereBenutzerTrittRaumBeiListener, registriereBenutzerVerlaesstRaumListener, registriereNachrichtenListener, registriereVerbundenListener, sendeBroadcast, sendeNachricht, trennen, verbinden, zeigeBenutzerImRaum`

- - ### Constructor Detail

    - #### LobbyServiceInteractor

          public LobbyServiceInteractor(@NonNull
                                        BaoService serviceInterface)

  - ### Method Detail

    - #### registriereBenoetigteListener

          public void registriereBenoetigteListener()

      Description copied from interface: `BaseInteractorInterface`
      Registriert, zusätzlich zum Nachrichten-Event Listener, weitere Listener am Socket
      Specified by:
        `registriereBenoetigteListener` in interface `BaseInteractorInterface`

    - #### entferneRegistrierteListener

          public void entferneRegistrierteListener()

      Description copied from interface: `BaseInteractorInterface`
      Entfernt die zusätzlichen registrierten Listener vom Socket.
      Specified by:
        `entferneRegistrierteListener` in interface `BaseInteractorInterface`

    - #### onNeueNachricht

          public void onNeueNachricht(java.lang.Object... args)

      Description copied from interface: `BaseInteractorInterface`
      Wird beim erhalten eines Nachricht-Events aufgerufen.
      Specified by:
        `onNeueNachricht` in interface `BaseInteractorInterface`
      Parameters:
        `args` - - Daten, die mit dem Event gesendet wurden

    - #### sendeHerausforderung

          public void sendeHerausforderung(java.lang.String empfaengerUUID,
                                           Benutzer ich)

      Description copied from interface: `LobbyRemoteDataSource`
      Sendet eine Herausforderung an den angegeben Benutzer.
      Specified by:
        `sendeHerausforderung` in interface `LobbyRemoteDataSource`
      Parameters:
        `empfaengerUUID` - - Benutzer, der herausgefordert werden soll
        `ich` - - Daten des Absenders

    - #### lehneHerausforderungAb

          public void lehneHerausforderungAb(java.lang.String absenderUUID)

      Description copied from interface: `LobbyRemoteDataSource`
      Sendet dem Herausforderer, dass die Herausforderung abgelehnt wurde.
      Specified by:
        `lehneHerausforderungAb` in interface `LobbyRemoteDataSource`
      Parameters:
        `absenderUUID` - - uuid des Absenders, um die Nachricht richtig zuzustellen

    - #### nimmHerausforderungAn

          public void nimmHerausforderungAn(java.lang.String gegnerUUID)

      Description copied from interface: `LobbyRemoteDataSource`
      Sendet dem Herausforderer, dass die Herausforderung angenommen wurde.
      Specified by:
        `nimmHerausforderungAn` in interface `LobbyRemoteDataSource`
      Parameters:
        `gegnerUUID` - - uuid des Gegners um die Nachricht richtig zuzustellen

    - #### verlasseLobby

          public void verlasseLobby()

      Description copied from interface: `LobbyRemoteDataSource`
      Verlaesst die Lobby in dem der Raum "Lobby" verlassen wird.
      Specified by:
        `verlasseLobby` in interface `LobbyRemoteDataSource`

    - #### verlasseAktuellenRaum

          public void verlasseAktuellenRaum()

      Description copied from interface: `LobbyRemoteDataSource`
      Verlaesst den aktuellen Raum.
      Specified by:
        `verlasseAktuellenRaum` in interface `LobbyRemoteDataSource`

    - #### geheInLobby

          public void geheInLobby()

      Description copied from interface: `LobbyRemoteDataSource`
      Tritt der Lobby bei.
      Specified by:
        `geheInLobby` in interface `LobbyRemoteDataSource`

    - #### geheInNeuenRaum

          public void geheInNeuenRaum(java.lang.String neuerRaum)

      Description copied from interface: `LobbyRemoteDataSource`
      Tritt einem neuen Raum bei.
      Specified by:
        `geheInNeuenRaum` in interface `LobbyRemoteDataSource`
      Parameters:
        `neuerRaum` - - Raum, der betreten werden soll

    - #### ladeBenutzerInLobby

          public void ladeBenutzerInLobby()

      Description copied from interface: `LobbyRemoteDataSource`
      Fordert die Benutzer aus der Lobby an.
      Specified by:
        `ladeBenutzerInLobby` in interface `LobbyRemoteDataSource`

    - #### setzeListener

          public void setzeListener(LobbyEventListener listener)

      Description copied from interface: `LobbyRemoteDataSource`
      Setzt einen Listener, der bei einkommenden Events benachrichtigt wird.
      Specified by:
        `setzeListener` in interface `LobbyRemoteDataSource`
      Parameters:
        `listener` - - Listener, der gesetzt werden soll

    - #### onHerausforderungErhalten

          public void onHerausforderungErhalten(Benutzer absender)

      Specified by:
        `onHerausforderungErhalten` in interface `LobbyEventListener`

    - #### onHerausforderungBeendetErhalten

          public void onHerausforderungBeendetErhalten()

      Specified by:
        `onHerausforderungBeendetErhalten` in interface `LobbyEventListener`

    - #### onHerausforderungAngenommenErhalten

          public void onHerausforderungAngenommenErhalten()

      Specified by:
        `onHerausforderungAngenommenErhalten` in interface `LobbyEventListener`

    - #### onBenutzerVerlaesstRaumErhalten

          public void onBenutzerVerlaesstRaumErhalten(Benutzer benutzer)

      Specified by:
        `onBenutzerVerlaesstRaumErhalten` in interface `LobbyEventListener`

    - #### onBenutzerTrittRaumBeiErhalten

          public void onBenutzerTrittRaumBeiErhalten(Benutzer benutzer)

      Specified by:
        `onBenutzerTrittRaumBeiErhalten` in interface `LobbyEventListener`

    - #### onBenutzerlisteErhalten

          public void onBenutzerlisteErhalten(java.util.List<Benutzer> benutzerliste)

      Specified by:
        `onBenutzerlisteErhalten` in interface `LobbyEventListener`