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.ObjectAbstrakte 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 protectedAbstractKExDaVExchange(RemoteDaVParameter parameter, ManagerInterface manager)Abstrakte Klasse, die den Austausch von Objekten zwischen 2 Datenverteilern kapselt
-
Method Summary
Modifier and Type Method Description protected abstract EcreateExchange(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 ManagerInterfacegetManager()Gibt den KExDaV-Manager zurückprotected voidnotifyNewExchangeDescriptions(java.util.Set<D> newExchangeDescriptions)Benachrichtigung über neue Asutausche, damit z.B.protected abstract voidremoveExchange(E exchange)Template-Methode, die eine Datenaustauschklasse deaktiviert bzw. entferntvoidsetParameter(RemoteDaVParameter newParameters)Wird aufgerufen, falls neue Parameter eintreffenprotected voidstart()Startet den Austausch, aktualisiert den Austausch falls bereits gestartetprotected voidstop()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 MissingAreaExceptionStartet 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
-
-