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
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.
-
-
Field Summary
-
Fields inherited from class de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
_dataIndexCounter, _subscriptions
-
-
Constructor Summary
Constructors Constructor Description HighLevelSubscriptionsManager(TelegramManager telegramManager, de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking)Initialisiert den Anmeldungsmanager
-
Method Summary
Modifier and Type Method Description voidaddLocalReceiveSubscription(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 anjava.util.Collection<? extends Subscription>getAllSubscriptions(long applicationId)T_T_HighLevelCommunicationInterfacegetBestConnectionToRemoteDav(long remoteDav)Gibt die beste Verbindung zum angegebenen Datenverteiler zurückjava.util.List<java.lang.Long>getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurückTelegramManagergetTelegramManager()longgetThisTransmitterId()Gibt 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 BenutzerbooleanisActionAllowed(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 aktualisierenjava.lang.StringobjectToString(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.java.lang.StringsubscriptionToString(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Formatiert eine baseSubscriptionInfo zu einem String, der sich zur Darstellung in Fehlerausgaben u.ä. eignet-
Methods 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 Detail
-
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 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-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 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: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
public TelegramManager getTelegramManager()
-
getPotentialCentralDistributors
public java.util.List<java.lang.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
public T_T_HighLevelCommunicationInterface getBestConnectionToRemoteDav(long remoteDav)
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
public java.util.Collection<? extends Subscription> getAllSubscriptions(long applicationId)
-
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)
-
-