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, waitForInitializationTreeprivate 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.DataLoaderupdate in class DataLoaderdata - 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.DataLoaderHighLevelSubscriptionsManager ü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 DataLoaderprotected void deactivateInvalidChild(DataLoader node)
de.bsvrz.dav.dav.util.accessControl.DataLoaderdeactivateInvalidChild in class DataLoadernode - Das zu entfernende Kindobjektpublic boolean isDisabled(Region region)
isDisabled in interface ObjectCollectionParentpublic Region getRegion(SystemObject regionObject)
de.bsvrz.dav.dav.util.accessControl.RegionManagergetRegion in interface ObjectCollectionParentgetRegion in interface RegionManagerregionObject - Systemobjekt, das eine Region repräsentiertpublic void objectChanged(DataLoader object)
de.bsvrz.dav.dav.util.accessControl.RegionManagerHighLevelSubscriptionsManager eine Benachrichtigung senden, dass
sich die Rechte des Benutzers geändert haben und eventuelle vorhandene Anmeldungen entfernt werden müssen.objectChanged in interface RegionManagerobject - Objekt das sich geändert hatpublic Object getUpdateLock()
de.bsvrz.dav.dav.util.accessControl.RegionManagergetUpdateLock in interface RegionManagerpublic void blockChanged()
de.bsvrz.dav.dav.util.accessControl.ObjectCollectionChangeListenerblockChanged in interface ObjectCollectionChangeListener