Class ClientDavConnection

  • All Implemented Interfaces:
    ClientDavInterface

    public class ClientDavConnection
    extends java.lang.Object
    implements ClientDavInterface
    Diese Klasse repräsentiert die logische Verbindung zum Datenverteiler.
    • Constructor Detail

      • ClientDavConnection

        public ClientDavConnection()
                            throws MissingParameterException
        Erzeugt eine neue logische Datenverteilerverbindung mit Default-Parametern.
        Throws:
        MissingParameterException - Wenn notwendige Informationen nicht in den Default-Parametern spezifiziert wurden.
      • ClientDavConnection

        public ClientDavConnection​(ClientDavParameters parameters)
                            throws MissingParameterException
        Erzeugt eine neue logische Datenverteilerverbindung mit den angegebenen Parametern.
        Parameters:
        parameters - Parameter für die Datenverteiler-Applikationsfunktionen.
        Throws:
        MissingParameterException - Wenn notwendige Informationen nicht in den übergebenen Parametern spezifiziert wurden.
      • ClientDavConnection

        public ClientDavConnection​(ClientDavParameters parameters,
                                   DataModel dataModel)
                            throws MissingParameterException
        Erzeugt eine neue logische Datenverteilerverbindung mit den angegebenen Parametern. Es wird keine Verbindung zur Konfiguration aufgebaut, sämtliche konfigurierenden Anfragen werden über das angegebene Datenmodell abgewickelt. Dieser Konstruktor ist für die Konfigurations-Applikation vorgesehen, da diese ihr Datenmodell selbst verwaltet.
        Parameters:
        parameters - Parameter für die Datenverteiler-Applikationsfunktionen.
        dataModel - Das zu verwendende Datenmodell für Konfigurationsanfragen.
        Throws:
        MissingParameterException - Wenn notwendige Informationen nicht in den übergebenen Parametern spezifiziert wurden.
      • ClientDavConnection

        protected ClientDavConnection​(ClientDavParameters parameters,
                                      DataModel dataModel,
                                      java.lang.Object lock)
                               throws MissingParameterException
        Erzeugt eine neue logische Datenverteilerverbindung mit den angegebenen Parametern. Es wird keine Verbindung zur Konfiguration aufgebaut, sämtliche konfigurierenden Anfragen werden über das angegebene Datenmodell abgewickelt. Dieser Konstruktor ist für die Konfigurations-Applikation vorgesehen, da diese ihr Datenmodell selbst verwaltet.
        Parameters:
        parameters - Parameter für die Datenverteiler-Applikationsfunktionen.
        dataModel - Das zu verwendende Datenmodell für Konfigurationsanfragen.
        lock - Objekt, welches zur Synchronisierung verwendet wird. Wird eine zweite Verbindung aufgebaut, synchronisieren beide Objekte auf dasselbe Lock-Objekt um Deadlocks zu vermeiden. (Ansonsten passiert es sehr schnell, dass jede Verbindung das eigene Lock hält und irgendeine Aktion auf der anderen Verbindung triggert, was dann zu einem Deadlock führt.)
        Throws:
        MissingParameterException - Wenn notwendige Informationen nicht in den übergebenen Parametern spezifiziert wurden.
    • Method Detail

      • setCloseHandler

        public void setCloseHandler​(ApplicationCloseActionHandler closer)
        Description copied from interface: ClientDavInterface
        Setzt das Objekt, das für die Behandlung von Fehlern der Kommunikationsverbindung zuständig ist. Die Applikation kann mit dem übergebenen Objekt selbst steuern, wie Verbindungsfehler dargestellt wird, und ob sich die Applikation beenden oder eine neue Verbindung aufgebauen soll. Wenn diese Methode nicht aufgerufen wird, wird als Default ein Objekt der Klasse SystemTerminator benutzt, das bei Kommunikationsfehlern eine Fehlermeldung ausgibt und die Applikation terminiert.
        Specified by:
        setCloseHandler in interface ClientDavInterface
        Parameters:
        closer - Objekt für die Behandlung von Kommunikationsfehlern oder null, falls bei einem Verbindungsfehler nichts passieren soll.
      • getTime

        public final long getTime()
        Description copied from interface: ClientDavInterface
        Bestimmt die aktuelle Zeit oder, wenn die Applikation mit der Simulationsvariante einer Offline-Simulation gestartet wurde, die simulierte Zeit.
        Specified by:
        getTime in interface ClientDavInterface
        Returns:
        Zeitpunkt in Millisekunden seit 1970.
      • sleep

        public final void sleep​(long timeToSleep)
        Description copied from interface: ClientDavInterface
        Blockiert den aufrufenden Thread für die spezifizierte Zeit. Die angegebene Dauer der Pause wird in Realzeit oder, wenn die Applikation mit der Simulationsvariante einer Offline-Simulation gestartet wurde, im Zeitfluss der Simulation berücksichtigt.
        Specified by:
        sleep in interface ClientDavInterface
        Parameters:
        timeToSleep - Wartezeit in Millisekunden seit 1970.
      • sleepUntil

        public final void sleepUntil​(long absolutTime)
        Description copied from interface: ClientDavInterface
        Blockiert den aufrufenden Thread bis die spezifizierte Zeit erreicht ist. Der angegebene Zeitpunkt wird in Realzeit oder, wenn die Applikation mit der Simulationsvariante einer Offline-Simulation gestartet wurde, im Zeitfluss der Simulation berücksichtigt.
        Specified by:
        sleepUntil in interface ClientDavInterface
        Parameters:
        absolutTime - Abzuwartender Zeitpunkt in Millisekunden seit 1970.
      • getArchive

        public ArchiveRequestManager getArchive​(SystemObject archiveSystem)
        Description copied from interface: ClientDavInterface
        Liefert ein Stellvertreterobjekt zurück, mit dem streambasierte Archivanfragen über ein bestimmtes Archivsystem abgewickelt werden können. Es wird eine Verbindung zu demjenigen Archivsystem hergestellt, dass über das angegebene System-Objekt identifiziert wird.
        Specified by:
        getArchive in interface ClientDavInterface
        Parameters:
        archiveSystem - Archivsystem über das Archivanfragen abgewickelt werden sollen.
        Returns:
        Stellvertreterobjekt zur Abwicklung von Archivanfragen über das spezifizierte Archivsystem.
      • disconnect

        public final void disconnect​(boolean error,
                                     java.lang.String message)
        Description copied from interface: ClientDavInterface
        Terminiert die Verbindung mit dem Datenverteiler. Der physische Kommunikationskanal zum Datenverteiler wird geschlossen und die logische Verbindung in den Zustand AußerBetrieb überführt. Bei einer normalen Terminierung wird sichergestellt, daß alle im Sendepuffer enthaltenen Telegramme vor dem Schließen des Kommunikationskanals gesendet werden. Bei einer abnormalen Terminierung wird der Kommunikationskanal sofort geschlossen.
        Specified by:
        disconnect in interface ClientDavInterface
        Parameters:
        error - Information, ob es sich um eine abnormale Terminierung der Verbindung handelt.
        message - Fehlertext, der im Falle einer abnormalen Terminierung die Ursache des Terminierung beschreibt, oder null wenn die Ursache nicht bekannt ist.
      • login

        public final void login​(java.lang.String userName,
                                java.lang.String password)
                         throws InconsistentLoginException,
                                CommunicationError
        Description copied from interface: ClientDavInterface
        Start der logischen Verbindung mit dem Datenverteiler. Dabei wird eine Authentifizierung des Benutzers beim Datenverteiler durchgeführt und die logische Verbindung in den Zustand InBetrieb überführt.
        Specified by:
        login in interface ClientDavInterface
        Parameters:
        userName - Name des Benutzers für die Authentifizierung.
        password - Passwort des Benutzers für die Authentifizierung.
        Throws:
        InconsistentLoginException - Wenn Benutzername oder Passwort nicht korrekt sind.
        CommunicationError - Wenn bei der Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.
      • login

        public final void login​(java.lang.String userName,
                                char[] password)
                         throws InconsistentLoginException,
                                CommunicationError
        Description copied from interface: ClientDavInterface
        Start der logischen Verbindung mit dem Datenverteiler. Dabei wird eine Authentifizierung des Benutzers beim Datenverteiler durchgeführt und die logische Verbindung in den Zustand InBetrieb überführt.
        Specified by:
        login in interface ClientDavInterface
        Parameters:
        userName - Name des Benutzers für die Authentifizierung.
        password - Passwort des Benutzers für die Authentifizierung.
        Throws:
        InconsistentLoginException - Wenn Benutzername oder Passwort nicht korrekt sind.
        CommunicationError - Wenn bei der Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.
      • login

        public final void login​(java.lang.String userName,
                                ClientCredentials clientCredentials)
                         throws InconsistentLoginException,
                                CommunicationError
        Description copied from interface: ClientDavInterface
        Start der logischen Verbindung mit dem Datenverteiler. Dabei wird eine Authentifizierung des Benutzers beim Datenverteiler durchgeführt und die logische Verbindung in den Zustand InBetrieb überführt.
        Specified by:
        login in interface ClientDavInterface
        Parameters:
        userName - Name des Benutzers für die Authentifizierung.
        clientCredentials - Passwort oder Login-Token
        Throws:
        InconsistentLoginException - Wenn Benutzername oder Passwort nicht korrekt sind.
        CommunicationError - Wenn bei der Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.
      • getCachedData

        public final ResultData[] getCachedData​(SystemObject[] objects,
                                                DataDescription dataDescription,
                                                ReceiveOptions options,
                                                HistorySpecification history)
        Description copied from interface: ClientDavInterface
        Zugriff auf zwischengespeicherte Datensätze. Über die optionale Zeitangabe kann auch auf historische Datensätze im Zwischenspeicher zugegriffen werden.
        Specified by:
        getCachedData in interface ClientDavInterface
        Parameters:
        objects - Feld mit System-Objekten für die die spezifizierten Daten zu lesen sind.
        dataDescription - Beschreibende Informationen zu den gewünschten Daten.
        options - Für den Zugriff zu verwendenden Optionen
        history - Spezifikation der gewünschten Historie oder null wenn nur die aktuellen Daten gewünscht sind.
        Returns:
        Zeitlich sortiertes Feld mit den gewünschten Daten.
      • getData

        public final ResultData[] getData​(SystemObject[] objects,
                                          DataDescription dataDescription,
                                          long unsubscriptionTime)
        Description copied from interface: ClientDavInterface
        Zugriff auf die aktuellen Datensätze von verschiedenen System-Objekten. Wenn einzelne der spezifizierten Datensätze nicht angemeldet sind, dann werden sie implizit angemeldet. Falls zu einzelnen spezifizierten Datensätzen noch kein Ergebnis vorliegt, wird darauf gewartet. Eine implizite Anmeldung wird wieder rückgängig gemacht, wenn über eine angegebene Zeitspanne kein Zugriff mehr auf das Datum erfolgte.
        Specified by:
        getData in interface ClientDavInterface
        Parameters:
        objects - Feld mit System-Objekten für die die spezifizierten Daten zu lesen sind.
        dataDescription - Beschreibende Informationen der zu lesenden Daten.
        unsubscriptionTime - Relative Zeitangabe in Millisekunden nach der eine implizite Anmeldung wieder abgemeldet werden kann.
        Returns:
        Feld mit den aktuellen Datensätzen.
      • getData

        public ResultData getData​(SystemObject object,
                                  DataDescription dataDescription,
                                  long unsubscriptionTime)
        Description copied from interface: ClientDavInterface
        Zugriff auf den aktuellen Datensatz eines System-Objekts. Wenn der spezifizierte Datensatz zwischengespeichert ist, dann wird er sofort zur Verfügung gestellt. Wenn der Datensatz nicht angemeldet ist, dann wird er implizit angemeldet. Falls noch kein Ergebnis vorliegt, wartet die Methode darauf. Eine implizite Anmeldung wird wieder rückgängig gemacht, wenn über eine angegebene Zeitspanne kein Zugriff mehr auf das Datum erfolgte.
        Specified by:
        getData in interface ClientDavInterface
        Parameters:
        object - System-Objekt für das die spezifizierten Daten zu lesen sind.
        dataDescription - Beschreibende Informationen zu dem zu lesenden Datensatz.
        unsubscriptionTime - Relative Zeitangabe in Millisekunden nach der eine implizite Anmeldung wieder abgemeldet werden kann.
        Returns:
        Der aktuelle Datensatz.
      • getDataModel

        public final DataModel getDataModel()
        Description copied from interface: ClientDavInterface
        Gibt das Datenmodell zurück, über das auf die lokale Konfiguration zugegriffen werden kann.
        Specified by:
        getDataModel in interface ClientDavInterface
        Returns:
        Datenmodell zum Zugriff auf die Konfiguration
      • getDataModel

        public DataModel getDataModel​(SystemObject configAuthority)
                               throws ConfigurationTaskException
        Description copied from interface: ClientDavInterface
        Gibt ein Datenmodell zurück, über das auf eine beliebige Konfiguration zugegriffen werden kann.
        Specified by:
        getDataModel in interface ClientDavInterface
        Parameters:
        configAuthority - Systemobjekt zum Konfigurationsverantwortlichen der Konfiguration
        Returns:
        Datenmodell zum Zugriff auf die Konfiguration.
        Throws:
        ConfigurationTaskException - Falls die angegebene Konfiguration innerhalb von 10 Minuten nicht geantwortet hat oder ein Fehler in der Kommunikation auftrat
      • getDataModel

        public final DataModel getDataModel​(java.lang.String configAuthority)
                                     throws ConfigurationTaskException
        Description copied from interface: ClientDavInterface
        Gibt ein Datenmodell zurück, über das auf eine beliebige Konfiguration zugegriffen werden kann.
        Specified by:
        getDataModel in interface ClientDavInterface
        Parameters:
        configAuthority - Pid des Konfigurationsverantwortlichen der Konfiguration
        Returns:
        Datenmodell zum Zugriff auf die Konfiguration.
        Throws:
        ConfigurationTaskException - Falls die angegebene Konfiguration innerhalb von 10 Minuten nicht geantwortet hat oder ein Fehler in der Kommunikation auftrat
      • getDataModel

        public DataModel getDataModel​(long configAuthorityId)
                               throws ConfigurationTaskException
        Description copied from interface: ClientDavInterface
        Gibt ein Datenmodell zurück, über das auf eine beliebige Konfiguration zugegriffen werden kann. Diese Funktion kann verwendet werden, wenn das Systemobjekt des Konfigurationsverantwortlichen der lokalen Konfiguration nicht bekannt ist.
        Specified by:
        getDataModel in interface ClientDavInterface
        Parameters:
        configAuthorityId - Id des Konfigurationsverantwortlichen der Konfiguration
        Returns:
        Datenmodell zum Zugriff auf die Konfiguration.
        Throws:
        ConfigurationTaskException - Falls die angegebene Konfiguration innerhalb von 10 Minuten nicht geantwortet hat oder ein Fehler in der Kommunikation auftrat
      • getDavRoundTripTime

        public final long getDavRoundTripTime()
        Description copied from interface: ClientDavInterface
        Bestimmt die Telegrammlaufzeit von dieser Applikation zum lokalen Datenverteiler und zurück.
        Specified by:
        getDavRoundTripTime in interface ClientDavInterface
        Returns:
        Telegrammlaufzeit in Millisekunden oder -1, wenn innerhalb 60 Sekunden keine Antwort empfangen wurde.
      • getLocalApplicationObject

        public final ClientApplication getLocalApplicationObject()
        Description copied from interface: ClientDavInterface
        Gibt das Stellvertreterobjekt für diese Applikation zurück. Die Erzeugung des entsprechenden Objekts in der Konfiguration wird vom Datenverteiler nach dem Verbindungsaufbau und der erfolgreichen Authentifizierung veranlasst.
        Specified by:
        getLocalApplicationObject in interface ClientDavInterface
        Returns:
        Stellvertreterobjekt für die lokale Applikation.
      • getLocalApplicationObjectId

        public long getLocalApplicationObjectId()
        Gibt die Id des Stellvertreterobjekts für diese Applikation zurück. Die Erzeugung des entsprechenden Objekts in der Konfiguration wird vom Datenverteiler nach dem Verbindungsaufbau und der erfolgreichen Authentifizierung veranlasst.
        Returns:
        Id des Stellvertreterobjekts für die lokale Applikation.
      • getLocalDav

        public final DavApplication getLocalDav()
        Description copied from interface: ClientDavInterface
        Gibt das Stellvertreterobjekt für den Datenverteiler, mit dem die Applikation verbunden ist, zurück.
        Specified by:
        getLocalDav in interface ClientDavInterface
        Returns:
        Stellvertreterobjekt für den verbundenen Datenverteiler.
      • sendData

        public final void sendData​(ResultData result)
                            throws DataNotSubscribedException,
                                   SendSubscriptionNotConfirmed
        Description copied from interface: ClientDavInterface
        Sendet einen Ergebnisdatensatz zum Datenverteiler. Die Daten müssen vorher zum Senden angemeldet worden sein. Falls beim ersten Sendeversuch keine positive/negative Sendesteuerung vorhanden ist, wird ein fest vorgegebener Zeitraum abgewartet in dem eine positive/negative Sendesteuerung vorliegen muss. Wenn nach Ablauf des Zeitraums keine positive/negative Sendesteuerung vorliegt, wird eine SendSubscriptionNotConfirmed Exception geworfen, falls die positive Sendesteuerung vor dem Ablauf des Zeitraums vorliegt, werden die Daten verschickt, liegt eine negative Sendesteuerung vor, wird eine SendSubscriptionNotConfirmed Exception geworfen.
        Falls die Sendesteuerung nach dem ersten erfolgreichen Sendeversuch wieder negativ wird, und es sollen erneut Daten verschickt werden, wird eine SendSubscriptionNotConfirmed Exception geworfen ohne die fest vorgegebene Zeitspanne abzuwarten.
        Specified by:
        sendData in interface ClientDavInterface
        Parameters:
        result - Ergebnis mit dem zu sendenden Datensatz.
        Throws:
        DataNotSubscribedException - Wenn die Daten nicht zum Senden angemeldet waren.
        SendSubscriptionNotConfirmed - Wenn beim Senden als einfacher Sender gesendet wird, ohne die Sendesteuerung abzuwarten.
      • sendData

        public final void sendData​(ResultData[] results)
                            throws DataNotSubscribedException,
                                   SendSubscriptionNotConfirmed
        Description copied from interface: ClientDavInterface
        Sendet mehrere Ergebnisdatensätze zum Datenverteiler. Die Daten müssen vorher zum Senden angemeldet worden sein. Falls beim ersten Sendeversuch keine positive/negative Sendesteuerung vorhanden ist, wird ein fest vorgegebener Zeitraum abgewartet in dem eine positive/negative Sendesteuerung vorliegen muss. Wenn nach Ablauf des Zeitraums keine positive/negative Sendesteuerung vorliegt, wird eine SendSubscriptionNotConfirmed Exception geworfen, falls die positive Sendesteuerung vor dem Ablauf des Zeitraums vorliegt, werden die Daten verschickt, liegt eine negative Sendesteuerung vor, wird eine SendSubscriptionNotConfirmed Exception geworfen.
        Falls die Sendesteuerung nach dem ersten erfolgreichen Sendeversuch wieder negativ wird, und es sollen erneut Daten verschickt werden, wird eine SendSubscriptionNotConfirmed Exception geworfen ohne die fest vorgegebene Zeitspanne abzuwarten.
        Specified by:
        sendData in interface ClientDavInterface
        Parameters:
        results - Die zu sendenden Ergebnisdatensätze.
        Throws:
        DataNotSubscribedException - Wenn nicht alle Datensätze zum Senden angemeldet waren.
        SendSubscriptionNotConfirmed - Wenn beim Senden als einfacher Sender gesendet wird, ohne die Sendesteuerung abzuwarten.
      • subscribeReceiver

        public final void subscribeReceiver​(ClientReceiverInterface receiver,
                                            java.util.Collection<? extends SystemObject> objects,
                                            DataDescription dataDescription,
                                            ReceiveOptions options,
                                            ReceiverRole role)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        objects - Liste mit System-Objekten für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
      • subscribeReceiver

        public final void subscribeReceiver​(ClientReceiverInterface receiver,
                                            java.util.Collection<? extends SystemObject> objects,
                                            DataDescription dataDescription,
                                            ReceiveOptions options,
                                            ReceiverRole role,
                                            long cacheTime)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        objects - Liste mit System-Objekten für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
        cacheTime - Vorhaltezeitraum in Millisekunden. Der Vorhaltezeitraum spezifiziert, wie lange empfangene Daten zwischengespeichert werden sollen. Der Wert -1 setzt den Vorhaltezeitraum auf den Default-Wert.
      • subscribeReceiver

        public void subscribeReceiver​(ClientReceiverInterface receiver,
                                      SystemObject object,
                                      DataDescription dataDescription,
                                      ReceiveOptions options,
                                      ReceiverRole role)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        object - System-Objekt für das die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
      • subscribeReceiver

        public void subscribeReceiver​(ClientReceiverInterface receiver,
                                      SystemObject object,
                                      DataDescription dataDescription,
                                      ReceiveOptions options,
                                      ReceiverRole role,
                                      long cacheTime)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        object - System-Objekt für das die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
        cacheTime - Vorhaltezeitraum in Millisekunden. Der Vorhaltezeitraum spezifiziert, wie lange empfangene Daten zwischengespeichert werden sollen. Der Wert -1 setzt den Vorhaltezeitraum auf den Default-Wert.
      • subscribeReceiver

        public final void subscribeReceiver​(ClientReceiverInterface receiver,
                                            SystemObject[] objects,
                                            DataDescription dataDescription,
                                            ReceiveOptions options,
                                            ReceiverRole role)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        objects - Feld mit System-Objekten für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
      • subscribeReceiver

        public final void subscribeReceiver​(ClientReceiverInterface receiver,
                                            SystemObject[] objects,
                                            DataDescription dataDescription,
                                            ReceiveOptions options,
                                            ReceiverRole role,
                                            long cacheTime)
        Description copied from interface: ClientDavInterface
        Anmeldung zum Empfangen von Daten. Mit der Anmeldung wird von der Applikation ein Objekt bereitgestellt, daß bei nachfolgenden Aktualisierungen der Daten entsprechend benachrichtigt wird.
        Specified by:
        subscribeReceiver in interface ClientDavInterface
        Parameters:
        receiver - Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.
        objects - Feld mit System-Objekten für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        options - Für die Anmeldung zu verwendende Optionen.
        role - Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).
        cacheTime - Vorhaltezeitraum in Millisekunden. Der Vorhaltezeitraum spezifiziert, wie lange empfangene Daten zwischengespeichert werden sollen. Der Wert -1 setzt den Vorhaltezeitraum auf den Default-Wert.
      • subscribeSender

        public final void subscribeSender​(ClientSenderInterface sender,
                                          java.util.Collection<? extends SystemObject> objects,
                                          DataDescription dataDescription,
                                          SenderRole role)
                                   throws OneSubscriptionPerSendData
        Description copied from interface: ClientDavInterface
        Anmeldung zum Senden von Daten. Für jedes mit objects angegebene Objekt wird ein Sendeanmeldung für die mit dataDescription spezifizierten Daten beim Datenverteiler durchgeführt. Bei Anmeldungen als Quelle (siehe Parameter role) wird nach der Anmeldung automatisch ein leerer Datensatz versendet.
        Specified by:
        subscribeSender in interface ClientDavInterface
        Parameters:
        sender - Anwendungs-Objekt, an das Sendesteuerungen gesendet werden.
        objects - Liste mit System-Objekten für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        role - Für die Anmeldung zu verwendende Rolle (Quelle oder Sender).
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.
      • subscribeSender

        public void subscribeSender​(ClientSenderInterface sender,
                                    SystemObject object,
                                    DataDescription dataDescription,
                                    SenderRole role)
                             throws OneSubscriptionPerSendData
        Description copied from interface: ClientDavInterface
        Anmeldung zum Senden von Daten. Für das angegebene Objekt wird ein Sendeanmeldung für die mit dataDescription spezifizierten Daten beim Datenverteiler durchgeführt. Bei Anmeldungen als Quelle (siehe Parameter role) wird nach der Anmeldung automatisch ein leerer Datensatz versendet.
        Specified by:
        subscribeSender in interface ClientDavInterface
        Parameters:
        sender - Anwendungs-Objekt, an das Sendesteuerungen gesendet werden.
        object - System-Objekt, für das die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        role - Für die Anmeldung zu verwendende Rolle (Quelle oder Sender).
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.
      • subscribeSender

        public final void subscribeSender​(ClientSenderInterface sender,
                                          SystemObject[] objects,
                                          DataDescription dataDescription,
                                          SenderRole role)
                                   throws OneSubscriptionPerSendData
        Description copied from interface: ClientDavInterface
        Anmeldung zum Senden von Daten. Für jedes mit objects angegebene Objekt wird ein Sendeanmeldung für die mit dataDescription spezifizierten Daten beim Datenverteiler durchgeführt. Bei Anmeldungen als Quelle (siehe Parameter role) wird nach der Anmeldung automatisch ein leerer Datensatz versendet.
        Specified by:
        subscribeSender in interface ClientDavInterface
        Parameters:
        sender - Anwendungs-Objekt, an das Sendesteuerungen gesendet werden.
        objects - Feld mit System-Objekten, für die die spezifizierten Daten anzumelden sind.
        dataDescription - Beschreibende Informationen zu den anzumeldenden Daten.
        role - Für die Anmeldung zu verwendende Rolle (Quelle oder Sender).
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.
      • subscribeSource

        public void subscribeSource​(ClientSenderInterface sender,
                                    ResultData initialData)
                             throws OneSubscriptionPerSendData
        Description copied from interface: ClientDavInterface
        Anmeldung als Quelle und versenden von initialen Daten. Für die in initialData enthaltenen Daten wird ein entsprechende Sendeanmeldung beim Datenverteiler durchgeführt und anschließend wird der übergebene Datensatz als initialer Datensatz versendet.
        Specified by:
        subscribeSource in interface ClientDavInterface
        Parameters:
        sender - Anwendungs-Objekt, an das Sendesteuerungen gesendet werden.
        initialData - Initialer Datensatz, der nach der entsprechenden Anmeldung zu versenden ist.
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.
      • createData

        public Data createData​(AttributeGroup attributeGroup)
        Description copied from interface: ClientDavInterface
        Erzeugt ein neues Data-Objekt zu der angegebenen Attributgruppe. Mit diesem Data-Objekt können Daten zu der Attributgruppe hinterlegt werden. Das erzeugte Data-Objekt kann dann mit Werten befüllt werden (z. B. data.getTextValue("Attribut").setText("Test");) und dann später entweder konfigurierend gespeichert werden oder als Online-Datensatz versendet werden. Für letzteres muss das Data-Objekt noch in ein ResultData verpackt werden, um Meta-Informationen wie den Datenzeitstempel zu ergänzen.

        Diese Methode kann durch AttributeGroup.createData() ersetzt werden, falls keine Kompatibilität mit alten Kernsoftware-Versionen erforderlich ist.

        Specified by:
        createData in interface ClientDavInterface
        Parameters:
        attributeGroup - Attributgruppe des neuen Datensatzes.
        Returns:
        Neuen initialisierten Datensatz.
      • sendApplicationReadyMessage

        public void sendApplicationReadyMessage()
        Description copied from interface: ClientDavInterface
        Methode, die von der Applikation aufgerufen werden kann, um explizit eine Applikations-Fertigmeldung zu versenden. Die SW-Einheit Start/Stopp verzögert den Start von Applikationen, die von einer anderen Applikation abhängig sind, bis diese Applikation die Fertigmeldung versendet. Die Fertigmeldung wird automatisch nach dem Verbindungsaufbau versendet, wenn die Applikation nicht vor der Authentifizierung der Verbindung die Methode ClientDavInterface.enableExplicitApplicationReadyMessage() aufgerufen hat.
        Specified by:
        sendApplicationReadyMessage in interface ClientDavInterface
      • enableExplicitApplicationReadyMessage

        public void enableExplicitApplicationReadyMessage()
        Description copied from interface: ClientDavInterface
        Diese Methode sollte von Applikationen, die den Zeitpunkt zum Versand der Applikations-Fertigmeldung selbst vorgeben möchten, vor der Authentifizierung einer Datenverteilerverbindung aufrufen. Der Aufruf dieser Methode bewirkt, dass nach dem Verbindungsaufbau automatisch eine Noch-Nicht-Fertigmeldung am Applikationsobjekt versendet wird. Die Applikation sollte dann nach erfolgreicher Initialisierung den Versand der Fertig-Meldung mit der Methode ClientDavInterface.sendApplicationReadyMessage() veranlassen.
        Specified by:
        enableExplicitApplicationReadyMessage in interface ClientDavInterface
      • getTimeStampFromSenderSubscription

        public int getTimeStampFromSenderSubscription​(BaseSubscriptionInfo info)
        Gibt den Zeitpunkt einer Sender-Anmeldung zurück
        Parameters:
        info - Anmeldung
        Returns:
        Sekunden seit 1970
      • getDefaultConfigurationArea

        public ConfigurationArea getDefaultConfigurationArea​(DynamicObjectType dynamicObjectType)
        Gibt den Standard-Konfigurationsbereich für den angegebenen dynamischen Typen zurück. Die Methode greift auf den Parameterdatensatz `atg.verwaltungDynamischerObjekte` zu. Sollte dieser nicht vorhanden sein oder für den angegebenen Typen keine Zuordnung definiert sein, wird der Standardbereich des Konfigurationsverantwortlichen verwendet.

        Diese Methode bietet die gleiche Kern-Funktionalität wie die de.bsvrz.sys.funclib.dynobj, aber keine erweiterten Möglichkeiten zum Anlegen/Löschen von Objekten.

        Specified by:
        getDefaultConfigurationArea in interface ClientDavInterface
        Parameters:
        dynamicObjectType - Typ
        Returns:
        Default-Bereich in dem Objekte dieses Typs angelegt werden (kann in Ausnahmefällen null sein, wenn kein Parameter definiert wurde und kein Defaultbereich konfiguriert wurde)
        Since:
        3.9.2
        See Also:
        ConfigurationArea.createDynamicObject(DynamicObjectType, String, String, Collection)
      • getDefaultConfigurationArea

        public ConfigurationArea getDefaultConfigurationArea​(DynamicObjectType dynamicObjectType,
                                                             ConfigurationAuthority configurationAuthority)
        Gibt den Standard-Konfigurationsbereich für den angegebenen dynamischen Typen zurück. Die Methode greift auf den Parameterdatensatz `atg.verwaltungDynamischerObjekte` zu. Sollte dieser nicht vorhanden sein oder für den angegebenen Typen keine Zuordnung definiert sein, wird der Standardbereich des Konfigurationsverantwortlichen verwendet.

        Diese Methode bietet die gleiche Kern-Funktionalität wie die de.bsvrz.sys.funclib.dynobj, aber keine erweiterten Möglichkeiten zum Anlegen/Löschen von Objekten.

        Parameters:
        dynamicObjectType - Typ
        configurationAuthority - Autarke Organisationseinheit
        Returns:
        Default-Bereich in dem Objekte dieses Typs angelegt werden
        Since:
        3.9.2
      • getSubscriptionInfo

        public ClientSubscriptionInfo getSubscriptionInfo​(DavApplication davApplication,
                                                          SystemObject object,
                                                          AttributeGroupUsage usage,
                                                          short simulationVariant)
                                                   throws java.io.IOException
        Gibt Informationen über eine Datenanmeldung zurück
        Specified by:
        getSubscriptionInfo in interface ClientDavInterface
        Parameters:
        davApplication - Datenverteiler, der gefragt werden soll
        object - Systemobjekt
        usage - Attributgruppenverwendung
        simulationVariant - Simulationsvariante
        Returns:
        Klasse mit Informationen über die angemeldeten Applikationen auf dieses Datum
        Throws:
        java.io.IOException
      • getSubscriptionInfo

        public ApplicationSubscriptionInfo getSubscriptionInfo​(DavApplication davApplication,
                                                               ClientApplication application)
                                                        throws java.io.IOException
        Gibt Informationen über die Datenanmeldungen einer Applikation zurück
        Specified by:
        getSubscriptionInfo in interface ClientDavInterface
        Parameters:
        davApplication - Datenverteiler, der gefragt werden soll
        application - Applikation von der vorhandene Anmeldungen abgefragt werden sollen
        Returns:
        Klasse mit Informationen über die angemeldeten Applikationen auf dieses Datum
        Throws:
        java.io.IOException
      • addConnectionListener

        public void addConnectionListener​(DavConnectionListener davConnectionListener)
        Description copied from interface: ClientDavInterface
        Ergänzt einen neuen Beobachter für bestimmte Zustandsänderungen bzgl. der Verbindung zum Datenverteiler.
        Specified by:
        addConnectionListener in interface ClientDavInterface
        Parameters:
        davConnectionListener - Beobachterobjekt, das hinzugefügt werden soll.
      • removeConnectionListener

        public void removeConnectionListener​(DavConnectionListener davConnectionListener)
        Description copied from interface: ClientDavInterface
        Entfernt einen Beobachter für bestimmte Zustandsänderungen bzgl. der Verbindung zum Datenverteiler.
        Specified by:
        removeConnectionListener in interface ClientDavInterface
        Parameters:
        davConnectionListener - Beobachterobjekt, das entfernt werden soll.
      • checkLoggedUserNameAndPassword

        public boolean checkLoggedUserNameAndPassword​(java.lang.String userName,
                                                      java.lang.String password)
        Description copied from interface: ClientDavInterface
        Vergleicht den angegebenen Benutzernamen und das angegebene Benutzerpasswort mit den entsprechenden Werten, die beim Verbindungsaufbau zum Datenverteiler benutzt wurden.
        Specified by:
        checkLoggedUserNameAndPassword in interface ClientDavInterface
        Parameters:
        userName - Zu prüfender Benutzername
        password - Zu prüfendes Passwort
        Returns:
        true, wenn eine Verbindung zum Datenverteiler besteht und mit dem angegebenen Benutzernamen und Passwort aufgebaut wurde, sonst false
      • getTransactions

        public Transactions getTransactions()
        Description copied from interface: ClientDavInterface
        Gibt eine Klasse zurück, die für diese Verbindung Transaktions-Anmeldungen durchführt
        Specified by:
        getTransactions in interface ClientDavInterface
        Returns:
        Klasse die Funktionen zu Transaktionen bietet
      • isConnected

        public boolean isConnected()
        Gibt true zurück, wenn die Verbindung aufgebaut wurde
        Specified by:
        isConnected in interface ClientDavInterface
        Returns:
        true, wenn die Verbindung aufgebaut wurde, sonst false
      • isLoggedIn

        public boolean isLoggedIn()
        Gibt true zurück, wenn der Benutzer erfolgreich eingeloggt ist
        Specified by:
        isLoggedIn in interface ClientDavInterface
        Returns:
        true, wenn der Benutzer erfolgreich eingeloggt ist, sonst false
      • getAccessControlManager

        public AccessControlManager getAccessControlManager()
        Description copied from interface: ClientDavInterface
        Gibt ein Objekt zurück, mit dem die Rechte des eigenen oder eines anderen Benutzers abgefragt werden können.

        Diese Rechte werden clientseitig anhand der vorhandenen Daten ermittelt und können ggf. vom Laufzeitverhalten abweichen, insbesondere wenn die Rechte von mehreren Datenverteilern mit unterschiedlicher Parametrierung geprüft werden oder ein Datensatz unter Verwendung von mehreren Benutzern übertragen wird.

        Eine Rückgabe von true von UserInfo.maySubscribeData heißt also nicht, dass der Datensatz in jedem Fall ankommt, sondern nur, dass der lokale Datenverteiler diesen anhand der aktuellen Parametrierung (voraussichtlich) nicht filtern wird.

        Es werden nur die Rechte beim lokalen Datenverteiler geprüft!

        Das zurückgegebene Objekt kann verwendet werden, um beispielsweise Buttons oder Menüs bei fehlenden Rechten zu deaktivieren oder auszublenden.

        Außerdem kann das Objekt dazu verwendet werden, statt dem Datenverteiler innerhalb einer Applikation beliebige Rechte lokal zu prüfen. So kann bspw. die PuA-Applikation, die Aufträge eines Benutzers annimmt und dann in dessen Namen Daten abfragt, prüfen, ob der Benutzer berechtigt ist, die Daten überhaupt abzufragen. Der Datenverteiler kann diese Prüfung nicht vornehmen, da aus seiner Sicht alle Daten von der PuA-Applikation (und dem Benutzer unter dem diese gestartet wurde) selbst abgefragt werden.

        Hinweis: Ist die verwendete Rechteprüfung des Datenverteilers nicht abfragbar, weil dieser eine zu alte Version verwendet oder das Datenmodell veraltet ist, wird angenommen, dass die alte Rechteprüfung verwendet wird. Im Zweifelsfall werden dadurch Operationen als verboten aufgeführt, die eigentlich erlaubt sind. Das Problem kann durch ein Update des Datenmodells und der Kernsoftware am Datenverteiler gelöst werden.

        Specified by:
        getAccessControlManager in interface ClientDavInterface
        Returns:
        AccessControlManager
      • getAccessControlMode

        @Nullable
        public AccessControlMode getAccessControlMode​(DavApplication davApplication)
        Description copied from interface: ClientDavInterface
        Gibt die vom angegebenen Datenverteiler verwendete Art der Rechteprüfung zurück
        Specified by:
        getAccessControlMode in interface ClientDavInterface
        Parameters:
        davApplication - Datenverteiler-Objekt
        Returns:
        Art der Rechteprüfung oder null, falls nicht ermittelbar