Package de.bsvrz.dav.dav.main
Class HighLevelSubscriptionsManager
java.lang.Object
de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
de.bsvrz.dav.dav.main.HighLevelSubscriptionsManager
- All Implemented Interfaces:
SubscriptionsManager
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.-
Field Summary
Fields inherited from class de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
_dataIndexCounter, _subscriptions
-
Constructor Summary
ConstructorsConstructorDescriptionHighLevelSubscriptionsManager
(TelegramManager telegramManager, de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking) Initialisiert den Anmeldungsmanager -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLocalReceiveSubscription
(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionInfo receiveSubscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke anvoid
addLocalSendSubscription
(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionInfo sendSubscriptionInfo) Meldet einen lokalen Sender oder eine lokale Quelle anCollection<? extends Subscription>
getAllSubscriptions
(long applicationId) getBestConnectionToRemoteDav
(long remoteDav) Gibt die beste Verbindung zum angegebenen Datenverteiler zurückgetPotentialCentralDistributors
(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurücklong
Gibt die eigene Dav-ID zurückvoid
handleListsUpdate
(long[] objectIds, de.bsvrz.dav.daf.communication.lowLevel.telegrams.AttributeGroupAspectCombination[] attributeGroupAspectCombinations) Wird bei einem Update der Anmeldelisten aufgerufen.void
initializeUser
(long userId) Initialisiert die Zugriffsrechte für den angegebenen Benutzerfinal 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 durchboolean
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 aktualisierenvoid
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 aktualisierenobjectToString
(long objectId) Formatiert eine Id zu einem Text der sich in Fehlerausgaben und ähnlichem eignetvoid
removeLocalReceiveSubscriptions
(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.void
removeLocalReceiveSubscriptions
(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.void
removeLocalSendSubscription
(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Meldet einen lokalen Sender oder eine lokale Quelle ab.void
removeLocalSendSubscriptions
(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Senker oder eine lokale Quelle ab.void
setConfigurationAvailable
(SelfClientDavConnection selfClientDavConnection, ApplicationStatusUpdater applicationStatusUpdater) Initialisiert Funktionen, die von der Konfiguration abhängen (z.B.subscriptionToString
(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Formatiert eine baseSubscriptionInfo zu einem String, der sich zur Darstellung in Fehlerausgaben u.ä. eignetMethods inherited from class de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
connectToRemoteDrains, connectToRemoteSources, dataIndexToString, getAllSubscriptions, getCurrentDataIndex, getNextDataIndex, getNextDataIndex, getSubscriptionInfo, handleTransmitterSubscriptionReceipt, handleUserRightsChanged, openExistingSubscriptionInfo, openSubscriptionInfo, removeAllSubscriptions, removeAllSubscriptions, removeSubscriptionInfo, updateDestinationRoute
-
Constructor Details
-
HighLevelSubscriptionsManager
public HighLevelSubscriptionsManager(TelegramManager telegramManager, de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking) Initialisiert den Anmeldungsmanager- Parameters:
telegramManager
- Telegramm-ManageruserRightsChecking
- 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-VerbindungapplicationStatusUpdater
- 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 classAbstractSubscriptionsManager
- Parameters:
application
- VerbindungsendSubscriptionInfo
- 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 classAbstractSubscriptionsManager
- Parameters:
application
- VerbindungbaseSubscriptionInfo
- 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 classAbstractSubscriptionsManager
- Parameters:
application
- VerbindungreceiveSubscriptionInfo
- 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 classAbstractSubscriptionsManager
- Parameters:
application
- VerbindungbaseSubscriptionInfo
- 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
- Applikationinfo
- Anmeldeinfoaction
- 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-IDinfo
- Anmeldeinfoaction
- 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
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
-
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
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 ObjekteattributeGroupAspectCombinations
- Neue Attributgruppenverwendungen
-
getAllSubscriptions
-
removeLocalSendSubscriptions
public void removeLocalSendSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Senker oder eine lokale Quelle ab.- Overrides:
removeLocalSendSubscriptions
in classAbstractSubscriptionsManager
- Parameters:
application
- AnwendungsubscriptionInfo
- subscriptionInfo
-
removeLocalReceiveSubscriptions
public void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.- Overrides:
removeLocalReceiveSubscriptions
in classAbstractSubscriptionsManager
- Parameters:
application
- AnwendungsubscriptionInfo
- subscriptionInfo
-
initializeUser
public void initializeUser(long userId) Initialisiert die Zugriffsrechte für den angegebenen Benutzer- Overrides:
initializeUser
in classAbstractSubscriptionsManager
- Parameters:
userId
- Benutzer-ID (muss in der lokalen Konfiguration existieren)
-