Interface SubscriptionsManager

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void connectToRemoteDrains​(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
      Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
      void connectToRemoteSources​(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
      Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
      TransmitterCommunicationInterface getBestConnectionToRemoteDav​(long remoteDav)
      Gibt die beste Verbindung zum angegebenen Datenverteiler zurück
      long getCurrentDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
      long getNextDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
      java.util.List<java.lang.Long> getPotentialCentralDistributors​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück
      SubscriptionInfo getSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
      long getThisTransmitterId()
      Gibt die eigene Dav-ID zurück
      void handleTransmitterSubscriptionReceipt​(TransmitterCommunicationInterface communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType transmitterSubscriptionType, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, ConnectionState connectionState, long mainTransmitterId)
      behandelt eine Anmeldungsquittung von einem anderen Datenverteiler
      boolean isActionAllowed​(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
      Führt eine allgemeine Rechteprüfung durch
      boolean isActionAllowed​(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
      Führt eine Rechteprüfung bei einer lokalen Anmeldung durch.
      void notifyIsNewCentralDistributor​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung Zentraldatenverteiler geworden ist, z.B. um die Anmeldelisten zu aktualisieren
      void notifyWasCentralDistributor​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung nicht mehr Zentraldatenverteiler ist, z.B. um die Anmeldelisten zu aktualisieren
      java.lang.String objectToString​(long objectId)
      Wandelt ein Objekt in darstellbaren Text um
      SubscriptionInfo openExistingSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
      SubscriptionInfo openSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert.
      void removeSubscriptionInfo​(SubscriptionInfo subscriptionInfo)
      Entfernt eine Anmeldeinformation.
      java.lang.String subscriptionToString​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wandlt eine Anmeldung in einen darstellbaren Text um
      void updateDestinationRoute​(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)
      Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
    • Method Detail

      • openSubscriptionInfo

        SubscriptionInfo openSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert. Nachdem die Benutzung des Objekts beendet ist, muss SubscriptionInfo.close() aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasse
      • openExistingSubscriptionInfo

        SubscriptionInfo openExistingSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Nachdem die Benutzung des Objekts beendet ist, muss (sofern Rückgabewert != null) SubscriptionInfo.close() aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasseoder null falls nicht existent
      • getSubscriptionInfo

        SubscriptionInfo getSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Im Unterschied zu openExistingSubscriptionInfo wird das Objekt nicht für Anmeldungen geöffnet, es dürfen daher keine An-/Abmeldungen durchgeführt werden.
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasse oder null falls zu dieser baseSubscriptionInfo keine Anmeldungsinfo vorliegt
      • isActionAllowed

        boolean isActionAllowed​(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin,
                                de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info,
                                de.bsvrz.dav.daf.accessControl.internal.UserAction action)
        Führt eine allgemeine Rechteprüfung durch
        Parameters:
        userLogin - Benutzer-ID
        info - Anmeldeinfo
        action - Aktion
        Returns:
        true wenn die Aktion erlaubt ist, sonst false
      • isActionAllowed

        boolean isActionAllowed​(ApplicationCommunicationInterface application,
                                de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info,
                                de.bsvrz.dav.daf.accessControl.internal.UserAction action)
        Führt eine Rechteprüfung bei einer lokalen Anmeldung durch. Hier werden weitere Besonderheiten geprüft, z. B. darf sich eine Applikation nur auf das eigene Applikationsobjekt anmelden, nicht auf fremde.
        Parameters:
        application - Applikation
        info - Anmeldeinfo
        action - Aktion
        Returns:
        true wenn die Aktion erlaubt ist, sonst false
      • notifyIsNewCentralDistributor

        void notifyIsNewCentralDistributor​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung Zentraldatenverteiler geworden ist, z.B. um die Anmeldelisten zu aktualisieren
        Parameters:
        baseSubscriptionInfo - Anmeldung
      • notifyWasCentralDistributor

        void notifyWasCentralDistributor​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung nicht mehr Zentraldatenverteiler ist, z.B. um die Anmeldelisten zu aktualisieren
        Parameters:
        baseSubscriptionInfo - Anmeldung
      • getPotentialCentralDistributors

        java.util.List<java.lang.Long> getPotentialCentralDistributors​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Zentraldatenverteiler-IDs
      • getBestConnectionToRemoteDav

        TransmitterCommunicationInterface getBestConnectionToRemoteDav​(long remoteDav)
        Gibt die beste Verbindung zum angegebenen Datenverteiler zurück
        Parameters:
        remoteDav - Datenverteiler-ID
        Returns:
        die beste Verbindung zum angegebenen Datenverteiler
      • removeSubscriptionInfo

        void removeSubscriptionInfo​(SubscriptionInfo subscriptionInfo)
        Entfernt eine Anmeldeinformation. Es dürfen beim Aufruf dieser Methode keine Anmeldungen mehr bestehen.
        Parameters:
        subscriptionInfo - Anmeldeinformation
      • connectToRemoteDrains

        void connectToRemoteDrains​(SubscriptionInfo subscriptionInfo,
                                   java.util.Set<java.lang.Long> distributorsToUse)
        Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
        Parameters:
        subscriptionInfo - Anmeldeinformation
        distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
      • connectToRemoteSources

        void connectToRemoteSources​(SubscriptionInfo subscriptionInfo,
                                    java.util.Set<java.lang.Long> distributorsToUse)
        Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
        Parameters:
        subscriptionInfo - Anmeldeinformation
        distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
      • subscriptionToString

        java.lang.String subscriptionToString​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Wandlt eine Anmeldung in einen darstellbaren Text um
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Text
      • objectToString

        java.lang.String objectToString​(long objectId)
        Wandelt ein Objekt in darstellbaren Text um
        Parameters:
        objectId - Objekt
        Returns:
        Text
      • getThisTransmitterId

        long getThisTransmitterId()
        Gibt die eigene Dav-ID zurück
        Returns:
        die eigene Dav-ID
      • handleTransmitterSubscriptionReceipt

        void handleTransmitterSubscriptionReceipt​(TransmitterCommunicationInterface communication,
                                                  de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType transmitterSubscriptionType,
                                                  de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo,
                                                  ConnectionState connectionState,
                                                  long mainTransmitterId)
        behandelt eine Anmeldungsquittung von einem anderen Datenverteiler
        Parameters:
        communication - Verbindung zum anderen Dav
        transmitterSubscriptionType - Art der Anmeldung (Sender/Empfänger)
        baseSubscriptionInfo - Anmeldeinformation
        connectionState - Rückmeldung des anderen Datenverteilers (Zuständig, nicht zuständig, etc.)
        mainTransmitterId - Zentraldatenverteiler-ID sofern verfügbar
      • updateDestinationRoute

        void updateDestinationRoute​(long transmitterId,
                                    TransmitterCommunicationInterface oldConnection,
                                    TransmitterCommunicationInterface newConnection)
        Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
        Parameters:
        transmitterId - Dav-Id
        oldConnection - Alte Verbindung
        newConnection - Neue bessere Verbindung
      • getNextDataIndex

        long getNextDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Datenindex
      • getCurrentDataIndex

        long getCurrentDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Datenindex