Class HighLevelSubscriptionsManager

java.lang.Object
de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
de.bsvrz.dav.dav.main.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 Details

    • 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 Details

    • 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
    • addLocalSendSubscription

      public void addLocalSendSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionInfo sendSubscriptionInfo)
      Description copied from class: AbstractSubscriptionsManager
      Meldet einen lokalen Sender oder eine lokale Quelle an
      Overrides:
      addLocalSendSubscription in class AbstractSubscriptionsManager
      Parameters:
      application - Verbindung
      sendSubscriptionInfo - Anmeldeparameter
    • removeLocalSendSubscription

      public void removeLocalSendSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Description copied from class: AbstractSubscriptionsManager
      Meldet einen lokalen Sender oder eine lokale Quelle ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
      Overrides:
      removeLocalSendSubscription in class AbstractSubscriptionsManager
      Parameters:
      application - Verbindung
      baseSubscriptionInfo - Objekt und Attributgruppenverwendung
    • addLocalReceiveSubscription

      public void addLocalReceiveSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionInfo receiveSubscriptionInfo)
      Description copied from class: AbstractSubscriptionsManager
      Meldet einen lokalen Empfänger oder eine lokale Senke an
      Overrides:
      addLocalReceiveSubscription in class AbstractSubscriptionsManager
      Parameters:
      application - Verbindung
      receiveSubscriptionInfo - Anmeldeparameter
    • removeLocalReceiveSubscriptions

      public void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Description copied from class: AbstractSubscriptionsManager
      Meldet einen lokalen Empfänger oder eine lokale Senke ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
      Overrides:
      removeLocalReceiveSubscriptions in class AbstractSubscriptionsManager
      Parameters:
      application - Verbindung
      baseSubscriptionInfo - Objekt und Attributgruppenverwendung
    • 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 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 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 -
    • getTelegramManager

      public TelegramManager getTelegramManager()
    • getPotentialCentralDistributors

      public List<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 Collection<? extends Subscription> getAllSubscriptions(long applicationId)
    • removeLocalSendSubscriptions

      public void removeLocalSendSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
      Meldet einen lokalen Senker oder eine lokale Quelle ab.
      Overrides:
      removeLocalSendSubscriptions in class AbstractSubscriptionsManager
      Parameters:
      application - Anwendung
      subscriptionInfo - subscriptionInfo
    • removeLocalReceiveSubscriptions

      public void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
      Meldet einen lokalen Empfänger oder eine lokale Senke ab.
      Overrides:
      removeLocalReceiveSubscriptions in class AbstractSubscriptionsManager
      Parameters:
      application - Anwendung
      subscriptionInfo - subscriptionInfo
    • 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)