T
- Der Typ des Datums den der Datensatz sichert.public abstract class AbstractDatensatz<T extends Datum> extends Object implements Datensatz<T>
Modifier and Type | Class and Description |
---|---|
private class |
AbstractDatensatz.AsynchronerReceiver
Der Empfänger wird in einer internen Klasse vor dem Anwender
versteckt.
|
private class |
AbstractDatensatz.SynchronerSender
Versteckt die Sendelogik des Datenverteilers vor dem Anwender.
|
Datensatz.Status
Modifier and Type | Field and Description |
---|---|
private Map<de.bsvrz.dav.daf.main.config.Aspect,T> |
daten
Kapselt die aktuellen Daten des Datensatzes.
|
private Map<de.bsvrz.dav.daf.main.config.Aspect,EventListenerList> |
listeners
Liste der registrierten Listener.
|
private Object |
mutex
Der Mutex an dem der Datensatz synchronisiert werden kann.
|
private SystemObjekt |
objekt
Das Systemobjekt.
|
private AbstractDatensatz.AsynchronerReceiver |
receiver
Der Empfänger dieses Datensatzes.
|
private AbstractDatensatz.SynchronerSender |
sender
Der Sender dieses Datensatzes.
|
private static long |
TIMEOUT
Standardtimeout von 60 Sekunden für das Senden und Empfangen
von Daten.
|
Constructor and Description |
---|
AbstractDatensatz(SystemObjekt objekt)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
abmeldenSender(de.bsvrz.dav.daf.main.config.Aspect asp)
Meldet eine eventuell vorhandene Anmeldung als Sender oder Quelle wieder
ab.
|
protected T |
abrufenDatum(de.bsvrz.dav.daf.main.config.Aspect asp)
Liefert die aktuellen Daten des Datensatzes.
|
protected void |
addUpdateListener(de.bsvrz.dav.daf.main.config.Aspect asp,
DatensatzUpdateListener listener)
Registriert einen Listener.
|
protected void |
anmeldenSender(de.bsvrz.dav.daf.main.config.Aspect asp)
Meldet den Datensatz als Sender oder Quelle am Datenverteiler an.
|
protected void |
check(de.bsvrz.dav.daf.main.ResultData result)
Prüft, ob das
ResultData zum Datensatz gehört. |
boolean |
equals(Object obj)
Zwei Datensätze sind gleich, wenn sie die selbe Attributgruppe am
gleichen Systemobjekt abbilden.
|
protected de.bsvrz.dav.daf.main.Data |
erzeugeSendeCache()
Gibt einen leeren Sendecache zurück.
|
protected void |
fireDatensatzAktualisiert(de.bsvrz.dav.daf.main.config.Aspect asp,
T datum)
Benachricht registrierte Listener über Änderungen am Datensatz.
|
protected abstract Collection<de.bsvrz.dav.daf.main.config.Aspect> |
getAspekte()
Gibt die verfügbaren Aspekte zurück.
|
protected T |
getDatum(de.bsvrz.dav.daf.main.config.Aspect asp)
Gibt die aktuellen Daten des Datensatzes zurück.
|
SystemObjekt |
getObjekt()
Gibt das Systemobjekt zurück, zu dem der Datensatz gehört.
|
protected Datensatz.Status |
getStatusSendesteuerung(de.bsvrz.dav.daf.main.config.Aspect asp)
Fragt, ob der Datensatz als Sender oder Quelle Daten senden darf.
|
protected boolean |
isAngemeldetSender(de.bsvrz.dav.daf.main.config.Aspect asp)
Fragt, ob der Datensatz als Sender oder Quelle angemeldet ist.
|
protected boolean |
isAutoUpdate(de.bsvrz.dav.daf.main.config.Aspect asp)
Liest das Flag
autoUpdate . |
protected abstract boolean |
isQuelle(de.bsvrz.dav.daf.main.config.Aspect asp)
Gibt an, ob der Datensatz als Quelle oder Sender angemeldet werden soll.
|
protected abstract boolean |
isSenke(de.bsvrz.dav.daf.main.config.Aspect asp)
Gibt an, ob der Datensatz als Senke oder Empfängher angemeldet
werden soll.
|
protected abstract de.bsvrz.dav.daf.main.Data |
konvertiere(T datum)
Erzeugt aus dem Datum ein für den Datenverteiler verständliches
Objekt.
|
protected void |
removeUpdateListener(de.bsvrz.dav.daf.main.config.Aspect asp,
DatensatzUpdateListener listener)
Deregistriert einen Listener.
|
protected void |
sendeDaten(de.bsvrz.dav.daf.main.config.Aspect asp,
T datum)
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.
|
protected void |
sendeDaten(de.bsvrz.dav.daf.main.config.Aspect asp,
T datum,
long timeout)
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.
|
protected void |
setDatum(de.bsvrz.dav.daf.main.config.Aspect asp,
T datum)
Legt die aktuellen Daten fest.
|
String |
toString() |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
erzeugeDatum, getAttributGruppe, setDaten
private static final long TIMEOUT
private final AbstractDatensatz.AsynchronerReceiver receiver
private final AbstractDatensatz.SynchronerSender sender
private final SystemObjekt objekt
private final Map<de.bsvrz.dav.daf.main.config.Aspect,EventListenerList> listeners
private final Map<de.bsvrz.dav.daf.main.config.Aspect,T extends Datum> daten
private final Object mutex
public AbstractDatensatz(SystemObjekt objekt)
objekt
- das Systemobjekt, dem der Datensatz zugeordnet ist.public boolean equals(Object obj)
public SystemObjekt getObjekt()
Datensatz
protected void abmeldenSender(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.protected T abrufenDatum(de.bsvrz.dav.daf.main.config.Aspect asp)
ClientDavInterface.getData(SystemObject, DataDescription, long)
abgerufen, gespeichert und geliefert.asp
- der betroffene Aspekt.protected void addUpdateListener(de.bsvrz.dav.daf.main.config.Aspect asp, DatensatzUpdateListener listener)
asp
- der betroffene Aspekt.listener
- ein interessierte Listener.protected void anmeldenSender(de.bsvrz.dav.daf.main.config.Aspect asp) throws AnmeldeException
asp
- der betroffene Aspekt.AnmeldeException
- wenn die Anmeldung nicht erfolgreich war.protected void check(de.bsvrz.dav.daf.main.ResultData result)
ResultData
zum Datensatz gehört. Es wird
die Attributgruppe aus der Datenbeschreibung des ResultData
mit
der Attributgruppe des Datensatzes. Außerdem wird geprüft, ob
der Aspekt des ResultData
bekannt ist.
Gehöhrt das ResultData
nicht zum Datensatz wird eine
IllegalArgumentException
geworfen.
result
- ein ResultSet
.Datensatz.getAttributGruppe()
protected de.bsvrz.dav.daf.main.Data erzeugeSendeCache()
Data
.konvertiere(Datum)
protected void fireDatensatzAktualisiert(de.bsvrz.dav.daf.main.config.Aspect asp, T datum)
Datensatz.setDaten(ResultData)
aufgerufen, nachdem das Datum des Datensatzes aktuallisiert wurde.asp
- der betroffene Aspekt.datum
- das Datum zum Zeitpunkt des Events.Datensatz.setDaten(ResultData)
,
setDatum(Aspect, Datum)
protected abstract Collection<de.bsvrz.dav.daf.main.config.Aspect> getAspekte()
protected T getDatum(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.protected Datensatz.Status getStatusSendesteuerung(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.true
, wenn der Datensatz als Sender oder Quelle Daten
senden darf.protected boolean isAngemeldetSender(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.true
, wenn der Datensatz als Sender oder Quelle
angemeldet ist.protected boolean isAutoUpdate(de.bsvrz.dav.daf.main.config.Aspect asp)
autoUpdate
.asp
- der betroffene Aspekt.true
, wenn der Datensatz neue Daten automatisch vom
Datenverteiler empfängt.protected abstract boolean isQuelle(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.true
, wenn die Anmeldung als Quelle erfolgen soll.protected abstract boolean isSenke(de.bsvrz.dav.daf.main.config.Aspect asp)
asp
- der betroffene Aspekt.true
, wenn die Anmeldung als Senke erfolgen soll.protected abstract de.bsvrz.dav.daf.main.Data konvertiere(T datum)
datum
- ein Datum, welches konvertiert werden soll.protected void removeUpdateListener(de.bsvrz.dav.daf.main.config.Aspect asp, DatensatzUpdateListener listener)
asp
- der betroffene Aspekt.listener
- ein nicht mehr interessierten Listener.protected void sendeDaten(de.bsvrz.dav.daf.main.config.Aspect asp, T datum) throws DatensendeException
asp
- der betroffene Aspekt.datum
- das zu sendende Datum.DatensendeException
- wenn die Daten nicht gesendet werden konnten. Der Sendecache
wird in dem Fall nicht geleert.Datensatz.erzeugeDatum()
protected void sendeDaten(de.bsvrz.dav.daf.main.config.Aspect asp, T datum, long timeout) throws DatensendeException
asp
- der betroffene Aspekt.datum
- das zu sendende Datum.timeout
- die Zeitspanne in der die Daten gesendet werden müssen.DatensendeException
- wenn die Daten nicht gesendet werden konnten. Der Sendecache
wird in dem Fall nicht geleert.Datensatz.erzeugeDatum()
protected void setDatum(de.bsvrz.dav.daf.main.config.Aspect asp, T datum)
Datensatz.setDaten(ResultData)
aufgerufen werden.asp
- der betroffene Aspekt.datum
- das neuen Datum.Datensatz.setDaten(ResultData)
,
fireDatensatzAktualisiert(Aspect, Datum)
Copyright © 2017 BitCtrl Systems GmbH. All rights reserved.