Class AbstractKExDaVExchange<D,​E>

  • Direct Known Subclasses:
    DataExchangeManager, ObjectExchangeManager, ParameterExchangeManager, SetExchangeManager

    public abstract class AbstractKExDaVExchange<D,​E>
    extends java.lang.Object
    Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt. Diese Klasse erhält Parameter, Und erstellt daraus eine beliebige anzahl von Definitionen (generischer Parameter D). Beim erneuten Eintreffen von Parametern werden diese Definitionen aktualisiert und mit den alten Definitionen verglichen. Für jede neue Definition wird ein neues Austausch-Objekt erstellt (generischer Parameter E). Für jede weggefallene Definition wird das zugehörige Austauschobjekt entsorgt. Wenn eine Definition unverändert bleibt, wird auch am Austauschobjekt nichts gemacht. So werden nur die Austausche von Parameteränderungen beeinflusst, wo auch wirklich die Parameter geändert werden. Hinweis: Definitionen und Austauschobjekte sollten weitgehend immutable sein.

    Descriptions sollten sinnvolle implementierungen von equals und hashcode haben, da sie hier in einer HashMap gespeichert werden und bei bedarf verglichen werden.

    • Method Summary

      Modifier and Type Method Description
      protected abstract E createExchange​(D description)
      Template-Methode, die anhand einer Description ein Datenaustausch-Klasse erstellt
      protected abstract java.util.Set<D> getExchangeDescriptionsFromNewParameters​(RemoteDaVParameter parameters)
      Template-Methode, die für einen Parameter-Datensatz alle Datenbeschreibungen zurückgeben soll
      java.util.Map<D,​E> getExchangeMap()
      Gibt die Descriptions und zugehörigen Austauschobjekte zurück, die zur Zeit in dieser Klasse gespeichert sind
      protected ManagerInterface getManager()
      Gibt den KExDaV-Manager zurück
      protected void notifyNewExchangeDescriptions​(java.util.Set<D> newExchangeDescriptions)
      Benachrichtigung über neue Asutausche, damit z.B.
      protected abstract void removeExchange​(E exchange)
      Template-Methode, die eine Datenaustauschklasse deaktiviert bzw. entfernt
      void setParameter​(RemoteDaVParameter newParameters)
      Wird aufgerufen, falls neue Parameter eintreffen
      protected void start()
      Startet den Austausch, aktualisiert den Austausch falls bereits gestartet
      protected void stop()
      Stoppt den Austausch
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractKExDaVExchange

        protected AbstractKExDaVExchange​(RemoteDaVParameter parameter,
                                         ManagerInterface manager)
        Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt
        Parameters:
        parameter - Parameter
        manager - KExDaV-Verwaltung
    • Method Detail

      • start

        protected void start()
                      throws MissingAreaException
        Startet den Austausch, aktualisiert den Austausch falls bereits gestartet
        Throws:
        MissingAreaException - falls kein gültiger Konfigurationsbereich zum Erstellen von Objekten angegeben wurde, aber einer benötigt wurde.
      • stop

        protected void stop()
        Stoppt den Austausch
      • setParameter

        public void setParameter​(RemoteDaVParameter newParameters)
                          throws MissingAreaException
        Wird aufgerufen, falls neue Parameter eintreffen
        Parameters:
        newParameters - Neue Parameter, die die auszutauschenden Daten und Objekte festlegen
        Throws:
        MissingAreaException - falls kein gültiger Konfigurationsbereich zum Erstellen von Objekten angegeben wurde, aber einer benötigt wurde.
      • notifyNewExchangeDescriptions

        protected void notifyNewExchangeDescriptions​(java.util.Set<D> newExchangeDescriptions)
        Benachrichtigung über neue Asutausche, damit z.B. Systemobjekte geladen werden können
        Parameters:
        newExchangeDescriptions - neue Austauschbeschreibungen
      • getManager

        protected final ManagerInterface getManager()
        Gibt den KExDaV-Manager zurück
        Returns:
        Manager
      • getExchangeMap

        public java.util.Map<D,​E> getExchangeMap()
        Gibt die Descriptions und zugehörigen Austauschobjekte zurück, die zur Zeit in dieser Klasse gespeichert sind
        Returns:
        Map mit Descriptions und Austauschobjekten
      • createExchange

        protected abstract E createExchange​(D description)
                                     throws KExDaVException
        Template-Methode, die anhand einer Description ein Datenaustausch-Klasse erstellt
        Parameters:
        description - Description
        Returns:
        Datenaustausch-Klasse
        Throws:
        KExDaVException - Falls ein Fehler auftritt
      • removeExchange

        protected abstract void removeExchange​(E exchange)
        Template-Methode, die eine Datenaustauschklasse deaktiviert bzw. entfernt
        Parameters:
        exchange - Datenaustauschklasse
      • getExchangeDescriptionsFromNewParameters

        protected abstract java.util.Set<D> getExchangeDescriptionsFromNewParameters​(RemoteDaVParameter parameters)
        Template-Methode, die für einen Parameter-Datensatz alle Datenbeschreibungen zurückgeben soll
        Parameters:
        parameters - Parameter
        Returns:
        Set mit Datenbeschreibungen