public abstract class DataLoader
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected de.bsvrz.sys.funclib.debug.Debug |
_debug
Debug
|
protected java.util.concurrent.locks.Lock |
_readLock
Lock, das zum Lesen von Daten benutzt wird.
|
protected java.util.concurrent.locks.Lock |
_writeLock |
Constructor and Description |
---|
DataLoader(ClientDavInterface connection,
java.lang.String attributeGroupPid,
java.lang.String aspectPid,
java.lang.Object lock)
Erstellt ein neues Objekt, für das Daten aktualisiert werden sollen.
|
Modifier and Type | Method and Description |
---|---|
abstract void |
deactivateInvalidChild(DataLoader node)
Wenn es ein Problem mit der Rekursion gibt, wird dieses Objekt hiermit angewiesen den Verweis auf das angegebene (Unter-)Objekt zu
deaktivieren.
|
protected abstract java.util.Collection<DataLoader> |
getChildObjects()
Gibt die untergeordneten Objekte zurück.
|
DataState |
getDataState()
Gibt den aktuellen Zustand zurück
|
long |
getNoDataTime()
Gibt zurück, wie lange keine Daten eingetroffen sind
|
SystemObject |
getSystemObject()
Gibt das Systemobjekt zurück
|
void |
invalidate()
Wird für Tests usw. gebraucht um dem Objekt zu sagen, dass es nicht initialisiert ist, also bei der nächsten Anfrage darauf warten soll, bis
neue Daten eintreffen
|
boolean |
isInitialized()
Prüft, ob dieses DataLoader-Objekt mit dem Laden der Daten fertig ist
|
protected void |
startDataListener(SystemObject systemObject)
Startet das Aktualisieren der Daten über das ClientReceiverInterface.
|
void |
stopDataListener()
Beendet das Aktualisieren der Daten über das ClientReceiverInterface
|
java.lang.String |
toString() |
java.lang.String |
toString(boolean verbose)
Bietet auf Wunsch eine ausführlichere String-Darstellung des Objekts (Allerdings auf Kosten der Verarbeitungszeit)
|
protected abstract void |
update(Data data)
Wird aufgerufen, wenn neue Daten eingetroffen sind.
|
void |
waitForInitialization()
Wartet bis dieses Objekt mit dem Laden fertig ist, aber maximal die in
TIMEOUT angegebene Zeit. |
void |
waitForInitializationTree()
Wartet bis dieses Objekt und alle Kindobjekte mit dem Laden fertig sind, aber pro Objekt maximal die in
TIMEOUT angegebene Zeit. |
protected final de.bsvrz.sys.funclib.debug.Debug _debug
protected final java.util.concurrent.locks.Lock _readLock
protected final java.util.concurrent.locks.Lock _writeLock
public DataLoader(ClientDavInterface connection, java.lang.String attributeGroupPid, java.lang.String aspectPid, java.lang.Object lock)
connection
- Verbindung zum DatenverteilerattributeGroupPid
- AttributgruppeaspectPid
- Aspektlock
- protected abstract void update(Data data)
data
- Data-Objekt entsprechend Attributgruppe und Aspektprotected abstract java.util.Collection<DataLoader> getChildObjects()
deactivateInvalidChild(DataLoader)
deaktivierte Kindelemente werden nicht aufgeführt.protected final void startDataListener(SystemObject systemObject)
update(de.bsvrz.dav.daf.main.Data)
-Methode
aufgerufen (auch nach dem ersten Aufruf der Methode). Um das Laden der Daten anzuhalten ist stopDataListener()
aufzurufen.systemObject
- Objekt für das die Daten geholt werden sollenpublic void stopDataListener()
public abstract void deactivateInvalidChild(DataLoader node)
node
- Das zu entfernende Kindobjektpublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toString(boolean verbose)
verbose
- ausführlichere Darstellung wenn truepublic boolean isInitialized()
public long getNoDataTime()
public DataState getDataState()
public SystemObject getSystemObject()
public void waitForInitialization()
TIMEOUT
angegebene Zeit. Bei Anfragen an dieses Objekt, sollte
zu erst diese Funktion aufgerufen werden um sicherzustellen, das das Objekt bereits Daten erhalten hat.public void waitForInitializationTree()
TIMEOUT
angegebene Zeit.public void invalidate()