Package de.bsvrz.kex.kexdav.main
Class AbstractKExDaVExchange<D,E>
- java.lang.Object
-
- de.bsvrz.kex.kexdav.main.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.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractKExDaVExchange(RemoteDaVParameter parameter, ManagerInterface manager)
Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt
-
Method Summary
Modifier and Type Method Description protected abstract E
createExchange(D description)
Template-Methode, die anhand einer Description ein Datenaustausch-Klasse erstelltprotected abstract java.util.Set<D>
getExchangeDescriptionsFromNewParameters(RemoteDaVParameter parameters)
Template-Methode, die für einen Parameter-Datensatz alle Datenbeschreibungen zurückgeben solljava.util.Map<D,E>
getExchangeMap()
Gibt die Descriptions und zugehörigen Austauschobjekte zurück, die zur Zeit in dieser Klasse gespeichert sindprotected ManagerInterface
getManager()
Gibt den KExDaV-Manager zurückprotected 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. entferntvoid
setParameter(RemoteDaVParameter newParameters)
Wird aufgerufen, falls neue Parameter eintreffenprotected void
start()
Startet den Austausch, aktualisiert den Austausch falls bereits gestartetprotected void
stop()
Stoppt den Austausch
-
-
-
Constructor Detail
-
AbstractKExDaVExchange
protected AbstractKExDaVExchange(RemoteDaVParameter parameter, ManagerInterface manager)
Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt- Parameters:
parameter
- Parametermanager
- 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
-
-