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.
Modifier and Type | Field and Description |
---|---|
private java.util.Map<D,E> |
_exchangeMap |
private ManagerInterface |
_manager |
private RemoteDaVParameter |
_parameter |
Modifier | Constructor and Description |
---|---|
protected |
AbstractKExDaVExchange(RemoteDaVParameter parameter,
ManagerInterface manager)
Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt
|
Modifier and Type | Method and 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.
|
private void |
refreshExchanges(RemoteDaVParameter parameters)
Aktualisiert die bestehenden Austauschmodule
|
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
|
private RemoteDaVParameter _parameter
private final ManagerInterface _manager
protected AbstractKExDaVExchange(RemoteDaVParameter parameter, ManagerInterface manager)
Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt
parameter
- Parametermanager
- KExDaV-Verwaltungprotected void start() throws MissingAreaException
Startet den Austausch, aktualisiert den Austausch falls bereits gestartet
MissingAreaException
- falls kein gültiger Konfigurationsbereich zum Erstellen von Objekten angegeben wurde, aber einer benötigt wurde.protected void stop()
Stoppt den Austausch
public void setParameter(RemoteDaVParameter newParameters) throws MissingAreaException
Wird aufgerufen, falls neue Parameter eintreffen
newParameters
- Neue Parameter, die die auszutauschenden Daten und Objekte festlegenMissingAreaException
- falls kein gültiger Konfigurationsbereich zum Erstellen von Objekten angegeben wurde, aber einer benötigt wurde.private void refreshExchanges(RemoteDaVParameter parameters) throws MissingAreaException
Aktualisiert die bestehenden Austauschmodule
parameters
- ParameterMissingAreaException
- falls kein gültiger Konfigurationsbereich zum Erstellen von Objekten angegeben wurde, aber einer benötigt wurde.protected void notifyNewExchangeDescriptions(java.util.Set<D> newExchangeDescriptions)
Benachrichtigung über neue Asutausche, damit z.B. Systemobjekte geladen werden können
newExchangeDescriptions
- neue Austauschbeschreibungenprotected final ManagerInterface getManager()
Gibt den KExDaV-Manager zurück
public java.util.Map<D,E> getExchangeMap()
Gibt die Descriptions und zugehörigen Austauschobjekte zurück, die zur Zeit in dieser Klasse gespeichert sind
protected abstract E createExchange(D description) throws KExDaVException
Template-Methode, die anhand einer Description ein Datenaustausch-Klasse erstellt
description
- DescriptionKExDaVException
- Falls ein Fehler auftrittprotected abstract void removeExchange(E exchange)
Template-Methode, die eine Datenaustauschklasse deaktiviert bzw. entfernt
exchange
- Datenaustauschklasseprotected abstract java.util.Set<D> getExchangeDescriptionsFromNewParameters(RemoteDaVParameter parameters)
Template-Methode, die für einen Parameter-Datensatz alle Datenbeschreibungen zurückgeben soll
parameters
- Parameter