Class HighLevelSubscriptionsManager

  • All Implemented Interfaces:
    SubscriptionsManager

    public class HighLevelSubscriptionsManager
    extends AbstractSubscriptionsManager
    Diese Klasse bietet Funktionen um die Anmeldungen zu verwalten. Bei neuen Datenanmeldungen werden entsprechend neue Anmeldeklassen (SubscriptionInfo) erstellt, welche den Status der angemeldeten Applikationen und Datenverteiler ermitteln und entsprechend veröffentlichen.
    • Constructor Detail

      • HighLevelSubscriptionsManager

        public HighLevelSubscriptionsManager​(TelegramManager telegramManager,
                                             de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking)
        Initialisiert den Anmeldungsmanager
        Parameters:
        telegramManager - Telegramm-Manager
        userRightsChecking - Ob die Zugriffsrechteprüfung aktiviert ist
    • Method Detail

      • setConfigurationAvailable

        public void setConfigurationAvailable​(SelfClientDavConnection selfClientDavConnection,
                                              ApplicationStatusUpdater applicationStatusUpdater)
        Initialisiert Funktionen, die von der Konfiguration abhängen (z.B. Rechteprüfung)
        Parameters:
        selfClientDavConnection - eigene Datenverteiler-Verbindung
        applicationStatusUpdater - Klasse, die angemeldete Datensätze verschickt
      • isActionAllowed

        public boolean isActionAllowed​(ApplicationCommunicationInterface application,
                                       de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info,
                                       de.bsvrz.dav.daf.accessControl.internal.UserAction action)
        Description copied from interface: SubscriptionsManager
        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
      • isActionAllowed

        public final 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)
        Description copied from interface: SubscriptionsManager
        Führt eine allgemeine Rechteprüfung durch
        Parameters:
        userLogin - Benutzer-ID
        info - Anmeldeinfo
        action - Aktion
        Returns:
        true wenn die Aktion erlaubt ist, sonst false
      • subscriptionToString

        public java.lang.String subscriptionToString​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Formatiert eine baseSubscriptionInfo zu einem String, der sich zur Darstellung in Fehlerausgaben u.ä. eignet
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Ein Text der Form [objectPid, atgPid, aspPid] mit möglichen Abweichungen je nach Anmeldung und Zustand
      • objectToString

        public java.lang.String objectToString​(long objectId)
        Formatiert eine Id zu einem Text der sich in Fehlerausgaben und ähnlichem eignet
        Parameters:
        objectId - Id
        Returns:
        je nach Verfügbarkeit und Zustand des Datenmodells Pid, Name oder Id des Objekts
      • getThisTransmitterId

        public long getThisTransmitterId()
        Description copied from interface: SubscriptionsManager
        Gibt die eigene Dav-ID zurück
        Returns:
        die eigene Dav-ID
      • notifyIsNewCentralDistributor

        public 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 -
      • notifyWasCentralDistributor

        public 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 -
      • getPotentialCentralDistributors

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

        public T_T_HighLevelCommunicationInterface getBestConnectionToRemoteDav​(long remoteDav)
        Description copied from interface: SubscriptionsManager
        Gibt die beste Verbindung zum angegebenen Datenverteiler zurück
        Parameters:
        remoteDav - Datenverteiler-ID
        Returns:
        die beste Verbindung zum angegebenen Datenverteiler
      • handleListsUpdate

        public void handleListsUpdate​(long[] objectIds,
                                      de.bsvrz.dav.daf.communication.lowLevel.telegrams.AttributeGroupAspectCombination[] attributeGroupAspectCombinations)
        Wird bei einem Update der Anmeldelisten aufgerufen. Anmeldungen, die die betreffenden Objekte oder Attributgruppenverwendungen
        Parameters:
        objectIds - Neue Objekte
        attributeGroupAspectCombinations - Neue Attributgruppenverwendungen
      • getAllSubscriptions

        public java.util.Collection<? extends Subscription> getAllSubscriptions​(long applicationId)
      • initializeUser

        public void initializeUser​(long userId)
        Initialisiert die Zugriffsrechte für den angegebenen Benutzer
        Overrides:
        initializeUser in class AbstractSubscriptionsManager
        Parameters:
        userId - Benutzer-ID (muss in der lokalen Konfiguration existieren)