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 TypeMethodDescriptionvoidaddLocalReceiveSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionInfo receiveSubscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke anvoidaddLocalSendSubscription(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ücklongGibt die eigene Dav-ID zurückvoidhandleListsUpdate(long[] objectIds, de.bsvrz.dav.daf.communication.lowLevel.telegrams.AttributeGroupAspectCombination[] attributeGroupAspectCombinations) Wird bei einem Update der Anmeldelisten aufgerufen.voidinitializeUser(long userId) Initialisiert die Zugriffsrechte für den angegebenen Benutzerfinal booleanisActionAllowed(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 durchbooleanisActionAllowed(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.voidnotifyIsNewCentralDistributor(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 aktualisierenvoidnotifyWasCentralDistributor(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 eignetvoidremoveLocalReceiveSubscriptions(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.voidremoveLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.voidremoveLocalSendSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Meldet einen lokalen Sender oder eine lokale Quelle ab.voidremoveLocalSendSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Senker oder eine lokale Quelle ab.voidsetConfigurationAvailable(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:AbstractSubscriptionsManagerMeldet einen lokalen Sender oder eine lokale Quelle an- Overrides:
addLocalSendSubscriptionin classAbstractSubscriptionsManager- Parameters:
application- VerbindungsendSubscriptionInfo- Anmeldeparameter
-
removeLocalSendSubscription
public void removeLocalSendSubscription(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Description copied from class:AbstractSubscriptionsManagerMeldet einen lokalen Sender oder eine lokale Quelle ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht- Overrides:
removeLocalSendSubscriptionin 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:AbstractSubscriptionsManagerMeldet einen lokalen Empfänger oder eine lokale Senke an- Overrides:
addLocalReceiveSubscriptionin classAbstractSubscriptionsManager- Parameters:
application- VerbindungreceiveSubscriptionInfo- Anmeldeparameter
-
removeLocalReceiveSubscriptions
public void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) Description copied from class:AbstractSubscriptionsManagerMeldet einen lokalen Empfänger oder eine lokale Senke ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht- Overrides:
removeLocalReceiveSubscriptionsin 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:SubscriptionsManagerFü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:SubscriptionsManagerFü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:SubscriptionsManagerGibt 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:SubscriptionsManagerGibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück- Parameters:
baseSubscriptionInfo- Anmeldung- Returns:
- Zentraldatenverteiler-IDs
-
getBestConnectionToRemoteDav
Description copied from interface:SubscriptionsManagerGibt 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:
removeLocalSendSubscriptionsin classAbstractSubscriptionsManager- Parameters:
application- AnwendungsubscriptionInfo- subscriptionInfo
-
removeLocalReceiveSubscriptions
public void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo) Meldet einen lokalen Empfänger oder eine lokale Senke ab.- Overrides:
removeLocalReceiveSubscriptionsin classAbstractSubscriptionsManager- Parameters:
application- AnwendungsubscriptionInfo- subscriptionInfo
-
initializeUser
public void initializeUser(long userId) Initialisiert die Zugriffsrechte für den angegebenen Benutzer- Overrides:
initializeUserin classAbstractSubscriptionsManager- Parameters:
userId- Benutzer-ID (muss in der lokalen Konfiguration existieren)
-