Package de.bsvrz.dav.dav.main
Interface SubscriptionsManager
- All Known Implementing Classes:
AbstractSubscriptionsManager
,HighLevelSubscriptionsManager
public interface SubscriptionsManager
Klasse für die Verwaltung der Anmeldungen
-
Method Summary
Modifier and Type Method Description void
connectToRemoteDrains(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durchvoid
connectToRemoteSources(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durchTransmitterCommunicationInterface
getBestConnectionToRemoteDav(long remoteDav)
Gibt die beste Verbindung zum angegebenen Datenverteiler zurücklong
getCurrentDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurücklong
getNextDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hochjava.util.List<java.lang.Long>
getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurückSubscriptionInfo
getSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.long
getThisTransmitterId()
Gibt die eigene Dav-ID zurückvoid
handleTransmitterSubscriptionReceipt(TransmitterCommunicationInterface communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType transmitterSubscriptionType, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, ConnectionState connectionState, long mainTransmitterId)
behandelt eine Anmeldungsquittung von einem anderen Datenverteilerboolean
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 aktualisierenjava.lang.String
objectToString(long objectId)
Wandelt ein Objekt in darstellbaren Text umSubscriptionInfo
openExistingSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.SubscriptionInfo
openSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert.void
removeSubscriptionInfo(SubscriptionInfo subscriptionInfo)
Entfernt eine Anmeldeinformation.java.lang.String
subscriptionToString(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
Wandlt eine Anmeldung in einen darstellbaren Text umvoid
updateDestinationRoute(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)
Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
-
Method Details
-
openSubscriptionInfo
SubscriptionInfo openSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert. Nachdem die Benutzung des Objekts beendet ist, mussSubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.- Parameters:
baseSubscriptionInfo
- baseSubscriptionInfo- Returns:
- Anmeldungsklasse
-
openExistingSubscriptionInfo
SubscriptionInfo openExistingSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Nachdem die Benutzung des Objekts beendet ist, muss (sofern Rückgabewert != null)SubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.- Parameters:
baseSubscriptionInfo
- baseSubscriptionInfo- Returns:
- Anmeldungsklasseoder null falls nicht existent
-
getSubscriptionInfo
SubscriptionInfo getSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Im Unterschied zu openExistingSubscriptionInfo wird das Objekt nicht für Anmeldungen geöffnet, es dürfen daher keine An-/Abmeldungen durchgeführt werden.- Parameters:
baseSubscriptionInfo
- baseSubscriptionInfo- Returns:
- Anmeldungsklasse oder null falls zu dieser baseSubscriptionInfo keine Anmeldungsinfo vorliegt
-
isActionAllowed
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 durch- Parameters:
userLogin
- Benutzer-IDinfo
- Anmeldeinfoaction
- Aktion- Returns:
- true wenn die Aktion erlaubt ist, sonst false
-
isActionAllowed
boolean 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. 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
-
notifyIsNewCentralDistributor
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
- Anmeldung
-
notifyWasCentralDistributor
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
- Anmeldung
-
getPotentialCentralDistributors
java.util.List<java.lang.Long> getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück- Parameters:
baseSubscriptionInfo
- Anmeldung- Returns:
- Zentraldatenverteiler-IDs
-
getBestConnectionToRemoteDav
Gibt die beste Verbindung zum angegebenen Datenverteiler zurück- Parameters:
remoteDav
- Datenverteiler-ID- Returns:
- die beste Verbindung zum angegebenen Datenverteiler
-
removeSubscriptionInfo
Entfernt eine Anmeldeinformation. Es dürfen beim Aufruf dieser Methode keine Anmeldungen mehr bestehen.- Parameters:
subscriptionInfo
- Anmeldeinformation
-
connectToRemoteDrains
void connectToRemoteDrains(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch- Parameters:
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
-
connectToRemoteSources
void connectToRemoteSources(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch- Parameters:
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
-
subscriptionToString
java.lang.String subscriptionToString(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Wandlt eine Anmeldung in einen darstellbaren Text um- Parameters:
baseSubscriptionInfo
- Anmeldung- Returns:
- Text
-
objectToString
java.lang.String objectToString(long objectId)Wandelt ein Objekt in darstellbaren Text um- Parameters:
objectId
- Objekt- Returns:
- Text
-
getThisTransmitterId
long getThisTransmitterId()Gibt die eigene Dav-ID zurück- Returns:
- die eigene Dav-ID
-
handleTransmitterSubscriptionReceipt
void handleTransmitterSubscriptionReceipt(TransmitterCommunicationInterface communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType transmitterSubscriptionType, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, ConnectionState connectionState, long mainTransmitterId)behandelt eine Anmeldungsquittung von einem anderen Datenverteiler- Parameters:
communication
- Verbindung zum anderen DavtransmitterSubscriptionType
- Art der Anmeldung (Sender/Empfänger)baseSubscriptionInfo
- AnmeldeinformationconnectionState
- Rückmeldung des anderen Datenverteilers (Zuständig, nicht zuständig, etc.)mainTransmitterId
- Zentraldatenverteiler-ID sofern verfügbar
-
updateDestinationRoute
void updateDestinationRoute(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen- Parameters:
transmitterId
- Dav-IdoldConnection
- Alte VerbindungnewConnection
- Neue bessere Verbindung
-
getNextDataIndex
long getNextDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch- Parameters:
baseSubscriptionInfo
- Anmeldung- Returns:
- Datenindex
-
getCurrentDataIndex
long getCurrentDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück- Parameters:
baseSubscriptionInfo
- Anmeldung- Returns:
- Datenindex
-