public class ParameterLoader extends DataLoader implements ObjectCollectionParent, ObjectCollectionChangeListener, RegionManager
Modifier and Type | Field and Description |
---|---|
private ClientDavInterface |
_connection |
private UnboundedQueue<Data> |
_dataQueue |
private KExDaV |
_kExDaV |
private long |
_lastTriggerTime |
private static Object |
_lock |
private KExDaVManager |
_manager |
private Data |
_parameterData |
private KExDaVObject |
_parameterPublisher |
private Set<RemoteDaVParameter> |
_parameters |
private 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 List<CorrespondingAttributeGroup> |
getAtgs(Data.Array item) |
protected Collection<DataLoader> |
getChildObjects()
Gibt die untergeordneten Objekte zurück.
|
private static DataExchangeStrategy |
getOnlineDirection(int dir) |
private static ParameterExchangeStrategy |
getParameterStrategy(int dir) |
private static String |
getPid(Data data) |
private static String |
getPid(Data data,
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) |
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 Collection<AreaParameter> |
parseAreaParameters(Data.Array array) |
private static DataExchangeIdentification |
parseDataIdentification(Data item) |
private ExchangeDataParameter |
parseDataParameter(Data data) |
private Collection<ExchangeDataParameter> |
parseDataParameters(Data.Array array) |
private static ObjectCollectionFactory |
parseObjectParameter(Data data) |
private static Collection<ObjectCollectionFactory> |
parseObjectParameters(Data.Array array) |
private static ParameterExchangeIdentification |
parseParameterIdentification(Data item) |
private ExchangeParameterParameter |
parseParameterParameter(Data data) |
private Collection<ExchangeParameterParameter> |
parseParameterParameters(Data.Array array) |
private RemoteDaVParameter |
parseRemoteDaV(Data item) |
private static ExchangeSetParameter |
parseSetParameter(Data data) |
private static 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 Object _lock
private final ClientDavInterface _connection
private final KExDaVManager _manager
private final KExDaV _kExDaV
private final Map<SystemObject,Region> _regionMap
private final KExDaVSender _sender
private 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)
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)
data
- Aktuelle Datenprivate RemoteDaVParameter parseRemoteDaV(Data item)
private static Collection<AreaParameter> parseAreaParameters(Data.Array array)
private static AreaParameter parseAreaParameter(Data data)
private 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 Collection<ExchangeParameterParameter> parseParameterParameters(Data.Array array)
private ExchangeParameterParameter parseParameterParameter(Data data)
private static ParameterExchangeIdentification parseParameterIdentification(Data item)
private static List<CorrespondingAttributeGroup> getAtgs(Data.Array item)
private static Collection<ObjectCollectionFactory> parseObjectParameters(Data.Array array)
private static ObjectCollectionFactory parseObjectParameter(Data data)
private static Collection<ExchangeSetParameter> parseSetParameters(Data.Array array)
private static ExchangeSetParameter parseSetParameter(Data data)
protected 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 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