public class ParameterLoader extends DataLoader implements ObjectCollectionParent, ObjectCollectionChangeListener, RegionManager
Diese Klasse liest die Parameter von dem KExDaV-Objekt ein und gibt die Parameter weiter
Modifier and Type | Field and Description |
---|---|
private ClientDavInterface |
_connection |
private UnboundedQueue<Data> |
_dataQueue |
private KExDaV |
_kExDaV |
private long |
_lastTriggerTime |
private static java.lang.Object |
_lock |
private KExDaVManager |
_manager |
private Data |
_parameterData |
private KExDaVObject |
_parameterPublisher |
private java.util.Set<RemoteDaVParameter> |
_parameters |
private java.util.Map<SystemObject,Region> |
_regionMap |
private KExDaVSender |
_sender |
_debug, _readLock, _writeLock
Constructor and Description |
---|
ParameterLoader(ClientDavInterface connection,
SystemObject systemObject,
KExDaVManager manager,
KExDaV kExDaV)
Erstellt ein neues Objekt für das Daten aktualisiert werden sollen.
|
Modifier and Type | Method and Description |
---|---|
void |
blockChanged()
Wird aufgerufen, wenn sich ein Block ändert
|
protected 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.
|
private static java.util.List<CorrespondingAttributeGroup> |
getAtgs(Data.Array item) |
protected java.util.Collection<DataLoader> |
getChildObjects()
Gibt die untergeordneten Objekte zurück.
|
private static DataExchangeStrategy |
getOnlineDirection(int dir) |
private static ParameterExchangeStrategy |
getParameterStrategy(int dir) |
private static java.lang.String |
getPid(Data data) |
private static java.lang.String |
getPid(Data data,
java.lang.String item) |
Region |
getRegion(SystemObject regionObject)
Gibt die Region-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
private static Direction |
getSetStrategy(int dir) |
java.lang.Object |
getUpdateLock()
Um immer einen konsistenten Zustand zu haben, darf immer nur ein DataLoader gleichzeitig pro RegionManager geupdatet werden.
|
boolean |
isDisabled(Region region) |
void |
objectChanged(DataLoader object)
Wird aufgerufen un dem AccessControlManager zu informieren, dass ein verwaltetes Objekt sich geändert hat.
|
private static AreaParameter |
parseAreaParameter(Data data) |
private static java.util.Collection<AreaParameter> |
parseAreaParameters(Data.Array array) |
private static DataExchangeIdentification |
parseDataIdentification(Data item) |
private ExchangeDataParameter |
parseDataParameter(Data data) |
private java.util.Collection<ExchangeDataParameter> |
parseDataParameters(Data.Array array) |
private static ObjectCollectionFactory |
parseObjectParameter(Data data) |
private static java.util.Collection<ObjectCollectionFactory> |
parseObjectParameters(Data.Array array) |
private static ParameterExchangeIdentification |
parseParameterIdentification(Data item) |
private ExchangeParameterParameter |
parseParameterParameter(Data data) |
private java.util.Collection<ExchangeParameterParameter> |
parseParameterParameters(Data.Array array) |
private RemoteDaVParameter |
parseRemoteDaV(Data item) |
private static ExchangeSetParameter |
parseSetParameter(Data data) |
private static java.util.Collection<ExchangeSetParameter> |
parseSetParameters(Data.Array array) |
private void |
publishParameters(Data data)
Veröffentlicht die aktuellen Parameter unter dem Aspekt ParameterIst
|
private void |
startUpdateThread() |
private void |
triggerParameterExchange(KExDaVAttributeGroupData data,
long dataTime) |
protected void |
update(Data data)
Wird aufgerufen, wenn neue Daten eingetroffen sind.
|
private void |
updateFromQueue(Data data) |
getDataState, getNoDataTime, getSystemObject, isInitialized, startDataListener, stopDataListener, toString, toString, waitForInitialization, waitForInitializationTree
private static final java.lang.Object _lock
private final ClientDavInterface _connection
private final KExDaVManager _manager
private final KExDaV _kExDaV
private final java.util.Map<SystemObject,Region> _regionMap
private final KExDaVSender _sender
private java.util.Set<RemoteDaVParameter> _parameters
private final KExDaVObject _parameterPublisher
private Data _parameterData
private long _lastTriggerTime
private final UnboundedQueue<Data> _dataQueue
public ParameterLoader(ClientDavInterface connection, SystemObject systemObject, KExDaVManager manager, KExDaV kExDaV)
Erstellt ein neues Objekt für das Daten aktualisiert werden sollen.
connection
- Verbindung zum DatenverteilersystemObject
- KExDaV-SystemObjekt, für das Parameter geladen werden sollenmanager
- Manager-Klasse an die Benachrichtigungen und Warnungen geschickt werden könnenkExDaV
- Hauptklasse KExDaV, wird über neue Parameter benachrichtigtprivate void startUpdateThread()
private void triggerParameterExchange(KExDaVAttributeGroupData data, long dataTime)
protected void update(Data data)
de.bsvrz.dav.dav.util.accessControl.DataLoader
update
in class DataLoader
data
- Data-Objekt entsprechend Attributgruppe und Aspektprivate void updateFromQueue(Data data)
private void publishParameters(Data data)
Veröffentlicht die aktuellen Parameter unter dem Aspekt ParameterIst
data
- Aktuelle Datenprivate RemoteDaVParameter parseRemoteDaV(Data item)
private static java.util.Collection<AreaParameter> parseAreaParameters(Data.Array array)
private static AreaParameter parseAreaParameter(Data data)
private static java.lang.String getPid(Data data, java.lang.String item)
private static java.lang.String getPid(Data data)
private java.util.Collection<ExchangeDataParameter> parseDataParameters(Data.Array array)
private ExchangeDataParameter parseDataParameter(Data data)
private static DataExchangeIdentification parseDataIdentification(Data item)
private static DataExchangeStrategy getOnlineDirection(int dir)
private static ParameterExchangeStrategy getParameterStrategy(int dir)
private static Direction getSetStrategy(int dir)
private java.util.Collection<ExchangeParameterParameter> parseParameterParameters(Data.Array array)
private ExchangeParameterParameter parseParameterParameter(Data data)
private static ParameterExchangeIdentification parseParameterIdentification(Data item)
private static java.util.List<CorrespondingAttributeGroup> getAtgs(Data.Array item)
private static java.util.Collection<ObjectCollectionFactory> parseObjectParameters(Data.Array array)
private static ObjectCollectionFactory parseObjectParameter(Data data)
private static java.util.Collection<ExchangeSetParameter> parseSetParameters(Data.Array array)
private static ExchangeSetParameter parseSetParameter(Data data)
protected java.util.Collection<DataLoader> getChildObjects()
de.bsvrz.dav.dav.util.accessControl.DataLoader
HighLevelSubscriptionsManager
über geänderte Benutzerrechte zu informieren. Achtung: Es
werden nur die direkten Kinder zurückzugeben, nicht die "Enkel" usw. - Will man alle "Enkel" usw. haben muss man diese Funktion rekursiv aufrufen.DataLoader.deactivateInvalidChild(DataLoader)
deaktivierte Kindelemente werden nicht aufgeführt.getChildObjects
in class DataLoader
protected void deactivateInvalidChild(DataLoader node)
de.bsvrz.dav.dav.util.accessControl.DataLoader
deactivateInvalidChild
in class DataLoader
node
- Das zu entfernende Kindobjektpublic boolean isDisabled(Region region)
isDisabled
in interface ObjectCollectionParent
public Region getRegion(SystemObject regionObject)
de.bsvrz.dav.dav.util.accessControl.RegionManager
getRegion
in interface ObjectCollectionParent
getRegion
in interface RegionManager
regionObject
- Systemobjekt, das eine Region repräsentiertpublic void objectChanged(DataLoader object)
de.bsvrz.dav.dav.util.accessControl.RegionManager
HighLevelSubscriptionsManager
eine Benachrichtigung senden, dass
sich die Rechte des Benutzers geändert haben und eventuelle vorhandene Anmeldungen entfernt werden müssen.objectChanged
in interface RegionManager
object
- Objekt das sich geändert hatpublic java.lang.Object getUpdateLock()
de.bsvrz.dav.dav.util.accessControl.RegionManager
getUpdateLock
in interface RegionManager
public void blockChanged()
de.bsvrz.dav.dav.util.accessControl.ObjectCollectionChangeListener
blockChanged
in interface ObjectCollectionChangeListener