public class DafDataModel extends Object implements DataModel, UpdateDynamicObjects
Modifier and Type | Class and Description |
---|---|
(package private) static class |
DafDataModel.ConfigDataKey
Identifikation eines konfigurierenden Datensatzes, die das zugehörige Systemobjekt und die zugehörige Attributgruppenverwendung speichert.
|
private class |
DafDataModel.ConfigurationAreaInfo
Hilfsklasse zum Speichern von Informationen zu Konfigurationsbereichen.
|
private static class |
DafDataModel.NotificationObject
Speichert die für eine asynchrone Benachrichtigung erforderlichen Parameter.
|
private class |
DafDataModel.NotifyingMutableCollectionChangeListener
Klasse zur asynchronen Benachrichtigung der Listener für Änderungen der Elemente von dynamischen Zusammenstellungen.
|
Modifier and Type | Field and Description |
---|---|
private int |
_acceptedCachedAreas |
private int |
_acceptedCachedConfigData |
private int |
_acceptedCachedSystemObjects |
private Map<Long,DafDataModel.ConfigurationAreaInfo> |
_areaInfos |
private DafSystemObject[] |
_configAreas |
private Hashtable<DafDataModel.ConfigDataKey,Object> |
_configDataValuesTable
Tabelle der zwischengespeicherten konfigurierenden Datensätze, als Key dient ein ConfigDataKey mit Systemobjekt und Attributgruppenverwendung
|
private DafConfigurationAuthority |
_configurationAuthority
Konfigurationsverantwortlicher der Konfiguration
|
private long |
_configurationAuthorityId
Die Objekt-Id des Konfigurationsverantwortlichen
|
private ConfigurationManager |
_configurationManager
Objekt zur Verwaltung der Kommunikation mit der Konfiguration
|
private AttributeGroupUsage |
_configurationReadReplyUsage
Attribugruppenverwendung Konfigurationsleseantworten
|
private AttributeGroupUsage |
_configurationReadRequestUsage
Attribugruppenverwendung Konfigurationsleseanfragen
|
private AttributeGroupUsage |
_configurationWriteReplyUsage
Attribugruppenverwendung Konfigurationsschreibantworten
|
private AttributeGroupUsage |
_configurationWriteRequestUsage
Attribugruppenverwendung Konfigurationsschreibanfragen
|
private ClientDavInterface |
_connection
Verbindung zum Datenverteiler.
|
private boolean |
_connectionClosed
Wird gesetzt, wenn die Verbindung zum Datenverteiler geschlossen wurde.
|
private DavConnectionListener |
_davConnectionListener |
private static Debug |
_debug
DebugLogger für Debug-Ausgaben
|
private Aspect |
_defaultConfigurationDataAspect
Aspekt "asp.eigenschaften", der als Default für Konfigurierende Datensätze bei Anfragen ohne Aspekt benutzt wird.
|
private int |
_ignoredCachedAreas |
private int |
_ignoredCachedConfigData |
private int |
_ignoredCachedSystemObjects |
private Set<SystemObjectType> |
_metaObjectTypes |
private static Object |
_noDataMarker
Falls ein Datensatz angefordert wurde, aber es keinen Datensatz gab, wird dieser Platzhalter eingefügt.
|
private DafDataModel.NotifyingMutableCollectionChangeListener |
_notifyingMutableCollectionChangeListener
Objekt zur asynchronen Benachrichtigung der Listener für Änderungen der Elemente von dynamischen Zusammenstellungen.
|
private LinkedList<ConfigTelegram> |
_pendingResponses |
private long |
_protocolVersion
Von der Konfiguration unterstützte Protokollversion <= MAX_PROTOCOL_VERSION
|
private ClientDavInterface |
_publicConnection
Verbindung zum Datenverteiler.
|
private BaseSubscriptionInfo |
_readBaseSubscriptionInfo
Anmeldeinfo für Konfigurationsanfragen zum Lesen
|
private ConfigurationRequester |
_remoteRequester
ConfigurationRequester für Konfigurationsanfragen.
|
private AutoExpireMap<Long,DafSystemObject> |
_systemObjectsById
Map der zwischengespeicherten konfigurierenden oder dynamischen Systemobjekte, als Key dient die ID des Objekts
|
private HashMap<String,DafSystemObject> |
_systemObjectsByPid
Map der zwischengespeicherten Objekte mit PID, als Key dient die PID des Objekts
|
private UserAdministration |
_userAdministration
Verschickt Auftrage zur Benutzerverwaltung mittels des ConfigurationsRequesters an die Konfiguration.
|
static int |
MAX_PROTOCOL_VERSION
Maximale Protokollversion (beginnend bei 0)
|
Constructor and Description |
---|
DafDataModel(ClientDavInterface connection)
Erzeugt ein neues Objekt zum Zugriff auf die Konfiguration über eine vorgegebene Datenverteilerverbindung.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
addSet(DafConfigurationObject configurationObject,
ObjectSet set)
Ordnet dem Konfigurationsobjekt eine weitere Menge zu.
|
BackupResult |
backupConfigurationFiles(String targetDirectory,
BackupProgressCallback callback)
Veranlasst die Konfiguration, alle Konfigurationsdateien zu sichern.
|
BackupResult |
backupConfigurationFiles(String targetDirectory,
ConfigurationAuthority configurationAuthority,
BackupProgressCallback callback)
Veranlasst die Konfiguration, ausgewählte Konfigurationsdateien zu sichern.
|
private List<SystemObject> |
castInterfaceToClass(Collection<SystemObject> systemObjects)
Diese Methode castet eine Collection, die Objekte enthält, die ein Interface implementieren, auf die konkrete Klasse.
|
void |
close()
Diese Methode sollte beim Terminieren der Datenverteilerverbindung aufgerufen werden.
|
ConfigurationObject |
createConfigurationObject(ConfigurationObjectType type,
String pid,
String name,
List<? extends ObjectSet> sets)
Erzeugt ein neues Konfigurationsobjekt eines vorgegebenen Typs.
|
DynamicObject |
createDynamicObject(SystemObjectType type,
String pid,
String name)
Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs.
|
ConfigurationRequester |
createRequester() |
int |
getAcceptedCachedAreas() |
int |
getAcceptedCachedConfigData() |
int |
getAcceptedCachedSystemObjects() |
short |
getActiveVersion(ConfigurationArea configurationArea)
Gibt die aktive Version des angegebenen Konfigurationsbereichs zurück.
|
Aspect |
getAspect(String pid)
Liefert den Aspekt mit der angegebenen PID zurück.
|
AttributeGroup |
getAttributeGroup(String pid)
Liefert die Attributgruppe mit der angegebenen PID zurück.
|
AttributeGroupUsage |
getAttributeGroupUsage(long usageIdentification)
Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
|
AttributeType |
getAttributeType(String pid)
Liefert den Attribut-Typ mit der angegebenen PID zurück.
|
List |
getBaseTypes()
Liefert die Basistypen, also die Typ-Objekte, die keinen anderen Typ erweitern, zurück.
|
(package private) Hashtable<DafDataModel.ConfigDataKey,Object> |
getConfigDataValuesTable() |
DafConfigurationArea |
getConfigurationArea(String pid)
Liefert zu der angegebenen Pid den passenden Konfigurationsbereich.
|
ConfigurationAuthority |
getConfigurationAuthority()
Liefert den lokalen Verantwortlichen der gesamten Konfiguration.
|
long |
getConfigurationAuthorityId()
Gibt die Objekt-Id des Konfigurationsverantwortlichen zurück.
|
String |
getConfigurationAuthorityPid()
Liefert die Pid des lokalen Verantwortlichen der gesamten Konfiguration.
|
Data[] |
getConfigurationData(Collection<SystemObject> objects,
AttributeGroup atg)
Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(Collection<SystemObject> objects,
AttributeGroup atg,
Aspect asp)
Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(Collection<SystemObject> objects,
AttributeGroupUsage usage)
Liefert die konfigurierenden Datensätze einer Attributgruppenverwendung für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(SystemObject[] objects,
AttributeGroup atg)
Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(SystemObject[] objects,
AttributeGroup atg,
Aspect aspect)
Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(SystemObject[] objects,
AttributeGroupUsage usage)
Liefert die konfigurierenden Datensätze einer Attributgruppenverwendung für mehrere Objekte zurück.
|
(package private) Data |
getConfigurationData(SystemObject object,
AttributeGroup atg)
Liefert einen konfigurierenden Datensatz eines Objekts zurück.
|
(package private) Data |
getConfigurationData(SystemObject object,
AttributeGroupUsage atgUsage)
Liefert einen konfigurierenden Datensatz eines Objekts zurück.
|
private Data[] |
getConfigurationDataRemote(List<SystemObject> objects,
AttributeGroupUsage usage)
Liefert die konfigurierenden Datensätze einer Attributgruppenverwendung für mehrere Objekte zurück.
|
ConfigurationManager |
getConfigurationManager()
Liefert das Objekt zur Verwaltung der Kommunikation mit der Konfiguration zurück.
|
ClientDavInterface |
getConnection()
Gibt die aktuelle Verbindung zum Datenverteiler zurück.
|
(package private) List<SystemObject> |
getElementsOfType(DafSystemObjectType type,
long time)
Bestimmt die zu einem vorgegebenen Zeitpunkt zur Zusammenstellung gehörenden Elemente.
|
(package private) List<SystemObject> |
getElementsOfTypeDuringPeriod(DafSystemObjectType type,
long startTime,
long endTime)
Bestimmt die Elemente, die während des gesamten angegebenen Zeitbereichs zur Zusammenstellung gehört haben.
|
(package private) List<SystemObject> |
getElementsOfTypeInPeriod(DafSystemObjectType type,
long startTime,
long endTime)
Bestimmt die Elemente, die an mindestens einem Zeitpunkt des angegebenen Zeitbereichs zur Zusammenstellung gehört haben.
|
int |
getIgnoredCachedAreas() |
int |
getIgnoredCachedConfigData() |
int |
getIgnoredCachedSystemObjects() |
private File |
getLocalConfigurationCacheFile(String configurationPath)
Bestimmt das File-Objekt für die Datei zur lokalen Speicherung von Konfigurationsdaten.
|
private DafSystemObject[] |
getMetaDataFromConfiguration()
Initiale Abfrage der von der Applikation benötigten Objekte.
|
SystemObject |
getObject(long id)
Liefert das System-Objekt mit der angegebenen Objekt-ID zurück.
|
SystemObject |
getObject(String pid)
Liefert das System-Objekt mit der angegebenen PID zurück.
|
List<? extends Object> |
getObjectDataValues(SystemObject object,
AttributeGroup attributeGroup)
Deprecated.
Zum Lesen von konfigurierenden Datensätzen sollten die Methoden
getConfigurationData(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject>, de.bsvrz.dav.daf.main.config.AttributeGroup) und SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) verwendet werden. |
(package private) DafSystemObject |
getObjectFromCache(long objectId)
Gibt das SystemObjekt mit der angegebenen Objekt-Id aus dem Cache zurück.
|
Collection<SystemObject> |
getObjects(Collection<ConfigurationArea> configurationAreas,
Collection<SystemObjectType> systemObjectTypes,
ObjectTimeSpecification objectTimeSpecification)
Gibt die Objekte zurück, die in einem der angegebenen Konfigurationsbereiche sind und deren Objekttyp in der angegebenen Objekttyp-Menge ist.
|
List<SystemObject> |
getObjects(long... ids)
Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält.
|
List<SystemObject> |
getObjects(String... pids)
Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält.
|
Collection<SystemObject> |
getObjects(String pid,
long startTime,
long endTime)
Gibt die Objekte zurück, die zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
|
List<SystemObject> |
getObjectsById(Collection<Long> ids)
Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält.
|
List<SystemObject> |
getObjectsByPid(Collection<String> pids)
Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält.
|
ObjectSetType |
getObjectSetType(String pid)
Liefert das Mengen-Typ-Objekt mit der angegebenen PID zurück.
|
List<SystemObject> |
getObjectsOfType(DafSystemObjectType dafSystemObject) |
LinkedList<ConfigTelegram> |
getPendingResponses()
Liste mit den noch nicht bearbeiteten Antworten auf Konfigurationsanfragen
|
long |
getProtocolVersion() |
ConfigurationRequester |
getRequester()
Mit dem zurückgegebenen Objekt können Anfragen an eine Konfiguration gestellt werden.
|
(package private) List |
getSetElements(DafObjectSet set,
long time)
Bestimmt die zu einem vorgegebenen Zeitpunkt zur Mengenzusammenstellung gehörenden Elemente.
|
(package private) List<SystemObject> |
getSetElementsDuringPeriod(DafObjectSet set,
long startTime,
long endTime)
Bestimmt die Elemente, die während des gesamten angegebenen Zeitbereichs zur Mengenzusammenstellung gehört haben.
|
(package private) List<SystemObject> |
getSetElementsInAllVersions(DafObjectSet set,
short fromVersion,
short toVersion)
Bestimmt die Elemente, die in allen Konfigurationsversionen eines vorgegebenen Versionsbereichs zur Mengenzusammenstellung gehört haben.
|
(package private) List<SystemObject> |
getSetElementsInAnyVersions(DafObjectSet set,
short fromVersion,
short toVersion)
Bestimmt die Elemente, die in mindestens einer Konfigurationsversion eines vorgegebenen Versionsbereichs zur Mengenzusammenstellung gehört haben.
|
(package private) List<SystemObject> |
getSetElementsInNextVersion(DafObjectSet set)
Bestimmt die nach Aktivierung der nächsten Konfigurationsversion zur Mengenzusammenstellung gehörenden Elemente.
|
(package private) List<SystemObject> |
getSetElementsInPeriod(DafObjectSet set,
long startTime,
long endTime)
Bestimmt die Elemente, die an mindestens einem Zeitpunkt des angegebenen Zeitbereichs zur Mengenzusammenstellung gehört haben.
|
(package private) List<SystemObject> |
getSetElementsInVersion(DafObjectSet set,
short version)
Bestimmt die in einer bestimmten Konfigurationsversion zur Mengenzusammenstellung gehörenden Elemente.
|
private List<SystemObject> |
getSystemObjectsFromConfiguration(long... ids) |
private List<SystemObject> |
getSystemObjectsFromConfiguration(String... pids) |
SystemObjectType |
getType(String pid)
Liefert das Typ-Objekt mit der angegebenen PID zurück.
|
SystemObjectType |
getTypeTypeObject()
Liefert das Systemobjekt, das den Typ von Typobjekten darstellt.
|
UserAdministration |
getUserAdministration()
Gibt ein Objekt zurück, mit dem die Benutzer der Konfiguration verwaltet werden können.
|
void |
init(ConfigurationManager configurationManager,
long configurationAuthorityId)
Initialisiert dieses Objekt nach erfolgreichem Verbindungsaufbau mit dem Datenverteiler
|
void |
invalidate(DafSystemObject dafSystemObject) |
boolean |
isConnectionClosed() |
void |
loadLocalConfigurationCache()
Liest lokal zwischengespeicherte Konfigurationsobjekte und konfigurierende Datensätze ein, falls in dem entsprechenden Aufrufparameter ein Verzeichnis
angegeben wurde und dort eine passende Datei vorhanden ist.
|
void |
newDynamicObjectCreated(long objectId,
long typeId)
Diese Methode wird aufgerufen, wenn die Konfiguration propagiert, dass ein neues dynamisches Objekt erzeugt wurde.
|
void |
objectInvalidated(DafSystemObject object,
long notValidSince) |
(package private) void |
removeSet(DafConfigurationObject configurationObject,
ObjectSet set)
Entfernt die Zuordnung von diesem Konfigurationsobjekt zu einer Menge.
|
void |
revalidate(DafSystemObject dafSystemObject) |
private void |
saveLocalConfigurationCache()
Speichert Konfigurationsobjekte und konfigurierende Datensätze in einer lokalen Konfigurationsdatei, falls im entsprechenden Aufrufparameter ein Verzeichnis
angegeben wurde.
|
(package private) void |
setConfigurationData(SystemObject systemObject,
AttributeGroupUsage atgUsage,
Data data)
Ändert einen konfigurierenden Datensatz eines Objekts.
|
void |
setName(DafSystemObject object,
String name) |
void |
setPublicConnection(ClientDavConnection publicConnection)
Wird bei der Initialisierung aufgerufen um die öffentliche ClientDavConnection zu setzen.
|
void |
update(ConfigTelegram telegram)
Diese Methode wird aufgerufen, wenn eine Antwort auf eine Konfigurationsanfrage empfangen wurde.
|
(package private) DafSystemObject |
updateInternalDataStructure(DafSystemObject systemObject,
boolean cachePidWhenDynamic)
Aktualisiert die Tabellen mit zwischengespeicherten Objekten, wenn Objekte gültig bzw.
|
void |
updateName(long objectId,
long typeId,
String newName)
Diese Methode wird aufgerufen, wenn die Konfiguration eine Namensänderung eines dynamischen Objekts propagiert hat.
|
void |
updateNotValidSince(long objectId,
long typeId,
long invalidTime)
Diese Methode wird aufgerufen, wenn die Konfiguration propagiert, dass ein dynamisches Objekt ungültig wurde.
|
private static final Debug _debug
public static final int MAX_PROTOCOL_VERSION
private long _protocolVersion
private ClientDavInterface _connection
private ClientDavInterface _publicConnection
private final AutoExpireMap<Long,DafSystemObject> _systemObjectsById
private HashMap<String,DafSystemObject> _systemObjectsByPid
private Hashtable<DafDataModel.ConfigDataKey,Object> _configDataValuesTable
private ConfigurationRequester _remoteRequester
private DafDataModel.NotifyingMutableCollectionChangeListener _notifyingMutableCollectionChangeListener
private int _acceptedCachedAreas
private int _ignoredCachedAreas
private int _acceptedCachedSystemObjects
private int _ignoredCachedSystemObjects
private int _acceptedCachedConfigData
private int _ignoredCachedConfigData
private static final Object _noDataMarker
private DafConfigurationAuthority _configurationAuthority
private BaseSubscriptionInfo _readBaseSubscriptionInfo
private ConfigurationManager _configurationManager
private LinkedList<ConfigTelegram> _pendingResponses
private long _configurationAuthorityId
private Aspect _defaultConfigurationDataAspect
private AttributeGroupUsage _configurationReadRequestUsage
private AttributeGroupUsage _configurationReadReplyUsage
private AttributeGroupUsage _configurationWriteRequestUsage
private AttributeGroupUsage _configurationWriteReplyUsage
private UserAdministration _userAdministration
private boolean _connectionClosed
private DavConnectionListener _davConnectionListener
private Map<Long,DafDataModel.ConfigurationAreaInfo> _areaInfos
private DafSystemObject[] _configAreas
private Set<SystemObjectType> _metaObjectTypes
public DafDataModel(ClientDavInterface connection)
connection
- Verbindung zum Datenverteiler.public int getAcceptedCachedAreas()
public int getIgnoredCachedAreas()
public int getAcceptedCachedSystemObjects()
public int getIgnoredCachedSystemObjects()
public int getAcceptedCachedConfigData()
public int getIgnoredCachedConfigData()
Hashtable<DafDataModel.ConfigDataKey,Object> getConfigDataValuesTable()
public void init(ConfigurationManager configurationManager, long configurationAuthorityId)
configurationManager
- Objekt zur Verwaltung der Kommunikation mit der KonfigurationconfigurationAuthorityId
- Die Objekt-Id des Konfigurationsverantwortlichenpublic void setPublicConnection(ClientDavConnection publicConnection)
publicConnection
- ClientDavConnectionpublic LinkedList<ConfigTelegram> getPendingResponses()
public long getProtocolVersion()
public boolean isConnectionClosed()
public void loadLocalConfigurationCache()
private void saveLocalConfigurationCache()
private File getLocalConfigurationCacheFile(String configurationPath)
.configcache
zusammen.configurationPath
- Verzeichnis für die Datei zur lokalen Speicherung von Konfigurationsdaten.public final void close()
public ConfigurationRequester getRequester()
public ConfigurationRequester createRequester() throws CommunicationError
CommunicationError
public ClientDavInterface getConnection()
DafSystemObject updateInternalDataStructure(DafSystemObject systemObject, boolean cachePidWhenDynamic)
systemObject
- Objekt das möglicherweise gültig bzw. ungültig geworden ist.cachePidWhenDynamic
- Da Pids in verschiedenen Simulationsvarianten unterschiedliche Objekte referenzieren,
dürfen dynamische Objekte nicht in _systemObjectsByPid gespeichert werden,
wenn nicht sicher ist, dass das dynamische Objekt zu der aktuell verwendeten Simulation gehört.
Die Pid darf nur gecacht werden, wenn das Objekt als Ergebnis von
getObject(String)
,
createDynamicObject(de.bsvrz.dav.daf.main.config.SystemObjectType, String, String)
,
oder
beim Abruf von getElements()/getObjects() einer dynamischen Menge zurückgegeben wurde.
In dem Fall ist der Parameter true. Konfigurationsobjekte werden immer gecacht,
hier ist der Parameter egal.public final ConfigurationManager getConfigurationManager()
null
, falls es noch nicht gesetzt wurde.init(de.bsvrz.dav.daf.main.impl.ConfigurationManager,long)
public final Aspect getAspect(String pid)
DataModel
public final AttributeGroup getAttributeGroup(String pid)
DataModel
getAttributeGroup
in interface DataModel
pid
- Die permanente ID der Attributgruppenull
, wenn es kein Objekt mit der gewünschten PID gibt.public final AttributeType getAttributeType(String pid)
DataModel
getAttributeType
in interface DataModel
pid
- Die permanente ID des Attribut-Typsnull
, wenn es kein Objekt mit der angegebenen PID gibt.public final SystemObjectType getType(String pid)
DataModel
public final ObjectSetType getObjectSetType(String pid)
DataModel
getObjectSetType
in interface DataModel
pid
- Die permanente ID des Mengen-Typ-Objektsnull
, wenn es kein Objekt mit der angegebenen PID gibt.public final SystemObjectType getTypeTypeObject()
DataModel
getTypeTypeObject
in interface DataModel
public final List getBaseTypes()
DataModel
getBaseTypes
in interface DataModel
public final SystemObject getObject(long id)
DataModel
getObject
in interface DataModel
getObject
in interface ObjectLookup
id
- Die Objekt-ID des System-Objektsnull
, wenn es kein Objekt mit der angegebenen ID gibt.DataModel
public SystemObject getObject(String pid)
DataModel
getObject
in interface DataModel
getObject
in interface ObjectLookup
pid
- Die permanente ID des System-Objektsnull
, wenn es kein Objekt mit der angegebenen PID gibt.DataModel
public List<SystemObject> getObjects(long... ids)
DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long)
aufzurufen.getObjects
in interface DataModel
ids
- Array mit IDsDataModel.getObject(long)
public List<SystemObject> getObjects(String... pids)
DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String)
aufzurufen.getObjects
in interface DataModel
pids
- Array mit PIDsDataModel.getObject(java.lang.String)
public List<SystemObject> getObjectsById(Collection<Long> ids)
DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long)
aufzurufen.getObjectsById
in interface DataModel
ids
- Liste mit IDsDataModel.getObject(long)
public List<SystemObject> getObjectsByPid(Collection<String> pids)
DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String)
aufzurufen.getObjectsByPid
in interface DataModel
pids
- Liste mit PIDsDataModel.getObject(java.lang.String)
private DafSystemObject[] getMetaDataFromConfiguration()
private List<SystemObject> getSystemObjectsFromConfiguration(long... ids)
private List<SystemObject> getSystemObjectsFromConfiguration(String... pids)
public DynamicObject createDynamicObject(SystemObjectType type, String pid, String name) throws ConfigurationChangeException
DataModel
Standard-Konfigurationsbereich
des aktuellen KV
erstellt.createDynamicObject
in interface DataModel
type
- Typ des neuen Objektspid
- PID des neuen Objekts.name
- Name des neuen Objekts.ConfigurationChangeException
- Wenn das Objekt nicht erzeugt werden konnte.SystemObject
,
SystemObject.isValid()
public ConfigurationObject createConfigurationObject(ConfigurationObjectType type, String pid, String name, List<? extends ObjectSet> sets) throws ConfigurationChangeException
DataModel
Standard-Konfigurationsbereich
des
aktuellen KV
erstellt.createConfigurationObject
in interface DataModel
type
- Typ des neuen Objekts.pid
- PID des neuen Objekts.name
- Name des neuen Objekts.sets
- Liste der Mengen des neuen Objekts oder null
, wenn kein Mengen vergeben werden sollen.ConfigurationChangeException
- Wenn das Objekt nicht erzeugt werden konnte.ConfigurationObject
,
SystemObject.isValid()
,
ConfigurationAuthority.getDefaultConfigurationArea()
public void setName(DafSystemObject object, String name) throws ConfigurationChangeException
ConfigurationChangeException
public void invalidate(DafSystemObject dafSystemObject) throws ConfigurationChangeException
ConfigurationChangeException
public void objectInvalidated(DafSystemObject object, long notValidSince)
public void revalidate(DafSystemObject dafSystemObject) throws ConfigurationChangeException
ConfigurationChangeException
public List<SystemObject> getObjectsOfType(DafSystemObjectType dafSystemObject)
public DafConfigurationArea getConfigurationArea(String pid)
DataModel
getConfigurationArea
in interface DataModel
pid
- die Pid des Konfigurationsbereichspublic ConfigurationAuthority getConfigurationAuthority()
DataModel
getConfigurationAuthority
in interface DataModel
public String getConfigurationAuthorityPid()
DataModel
getConfigurationAuthorityPid
in interface DataModel
public Collection<SystemObject> getObjects(String pid, long startTime, long endTime)
DataModel
getObjects
in interface DataModel
pid
- die Pid der gewünschten ObjektestartTime
- der zu betachtende Startzeitpunkt des AnfragezeitraumsendTime
- der zu betrachtende Endzeitpunkt des Anfragezeitraumspublic Collection<SystemObject> getObjects(Collection<ConfigurationArea> configurationAreas, Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification)
DataModel
getObjects
in interface DataModel
configurationAreas
- Konfigurationsbereiche, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle
Konfigurationsbereiche werden betrachtet.systemObjectTypes
- Objekttypen, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Objekttypen
werden betrachtet.objectTimeSpecification
- Gibt den Gültigkeitsbereich der geforderten Objekte an.public UserAdministration getUserAdministration()
DataModel
getUserAdministration
in interface DataModel
public BackupResult backupConfigurationFiles(String targetDirectory, BackupProgressCallback callback) throws ConfigurationTaskException, RequestException
DataModel
backupConfigurationFiles
in interface DataModel
targetDirectory
- Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten
Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen
Pfadnamen. Falls das de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel
direkt benutzt wird und mit de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel#setBackupBaseDirectory(java.io.File)
noch keine Zielverzeichnis angelegt
wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis
interpretiert.callback
- Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sindConfigurationTaskException
- Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das
Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback
eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.RequestException
- Fehler bei der Übertragung der Anfrage oder beim Empfang von Statusmeldungen der Konfiguration. Achtung: Man kann nicht
zwingend darauf schließen, dass der Backupvorgang nicht erfolgreich war, wenn eine Exception geworfen wurde. Wenn während
des Vorgangs beispielsweise die Verbindung zwischen Datenverteiler und Konfiguration abbricht, wird eine Exception
geworfen, aber die Konfiguration wird den Vorgang vermutlich dennoch korrekt beenden.public BackupResult backupConfigurationFiles(String targetDirectory, ConfigurationAuthority configurationAuthority, BackupProgressCallback callback) throws ConfigurationTaskException, RequestException
DataModel
backupConfigurationFiles
in interface DataModel
targetDirectory
- Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten
Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen
Pfadnamen. Falls das de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel
direkt benutzt wird und mit de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel#setBackupBaseDirectory(java.io.File)
noch keine Zielverzeichnis angelegt
wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis
interpretiert.configurationAuthority
- Konfigurationsverantwortlicher, dessen Konfigurations-Dateien gesichert werden sollen. Falls null werden
alle Dateien gesichert.callback
- Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sindConfigurationTaskException
- Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das
Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback
eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.RequestException
- Fehler bei der Übertragung der Anfrage oder beim Empfang von Statusmeldungen der Konfiguration. Achtung: Man kann nicht
zwingend darauf schließen, dass der Backupvorgang nicht erfolgreich war, wenn eine Exception geworfen wurde. Wenn während
des Vorgangs beispielsweise die Verbindung zwischen Datenverteiler und Konfiguration abbricht, wird eine Exception
geworfen, aber die Konfiguration wird den Vorgang vermutlich dennoch korrekt beenden.@Deprecated public final List<? extends Object> getObjectDataValues(SystemObject object, AttributeGroup attributeGroup)
getConfigurationData(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject>, de.bsvrz.dav.daf.main.config.AttributeGroup)
und SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
verwendet werden.object
- Objekt des gewünschten DatensatzesattributeGroup
- Attributgruppe des gewünschten Datensatzespublic final void update(ConfigTelegram telegram)
telegram
- Telegramm mit der empfangenen Antwort aus der Konfiguration.public Data[] getConfigurationData(Collection<SystemObject> objects, AttributeGroup atg)
DataModel
asp.eigenschaften
angenommen.
Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere
Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen
Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Systemobjekte
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public void updateName(long objectId, long typeId, String newName)
UpdateDynamicObjects
SystemObject.setName(String)
Methode benutzt werden, weil dadurch erneut eine Anfrage an die Konfiguration
verschickt werden würde.
Der beschriebene Mechanismus muss nur durchgeführt werden wenn: Sich das Objekt im Cache des Meta-Datamodells befindet oder ein Listener auf
Namensänderungen für den Typ des Objekt angemeldet ist.
Sind beide Bedingungen nicht erfüllt kann die Namensänderung verworfen werden.updateName
in interface UpdateDynamicObjects
objectId
- Id des Objekts, dessen Name aktualisiert werden solltypeId
- Typ des Objekts, der informiert wird, dass sich der Name eines Objekts geändert hatnewName
- Neuer Name des Objektspublic void updateNotValidSince(long objectId, long typeId, long invalidTime)
UpdateDynamicObjects
SystemObject.isValid()
muss false zurück geben. Der Typ des Objekts muss ebenfalls informatiert werden, dass das
Objekt nicht mehr gültig ist. Dies ist nötig, weil eventuell Listener auf diese Änderungen angemeldet sind.
Der beschriebene Mechanismus muss nur durchgeführt werden wenn: Sich das Objekt im Cache des Meta-Datamodells befindet oder ein Listener auf Invalidation
für den Typ des Objekt angemeldet ist.
Sind beide Bedingungen nicht erfüllt kann die Änderung verworfen werden.updateNotValidSince
in interface UpdateDynamicObjects
objectId
- Id des Objekts, dessen UngültigAb-Wert aktualisiert werden solltypeId
- Typ des Objekts, der informiert wird, dass das Objekt ungültig geworden istinvalidTime
- Zeitpunkt, an dem das Objekt ungültig wurdepublic void newDynamicObjectCreated(long objectId, long typeId)
UpdateDynamicObjects
newDynamicObjectCreated
in interface UpdateDynamicObjects
objectId
- Objekt, das neu angelegt wurdetypeId
- Typ des neuen Objekts. Dieser Typ wird darüber informiert, dass ein neues Objekt angelegt wurde.DafSystemObject getObjectFromCache(long objectId)
null
zurückgegeben.objectId
- Id des Objektsnull
, falls es sich nicht im Cache befindet.public Data[] getConfigurationData(Collection<SystemObject> objects, AttributeGroupUsage usage)
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage
abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt
werden.objects
- Liste der Systemobjekten
der gewünschten konfigurierenden Datensätze.usage
- Attributgruppenverwendung der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppenverwendung
Kombination hat.public Data[] getConfigurationData(Collection<SystemObject> objects, AttributeGroup atg, Aspect asp)
DataModel
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage abgefragt werden. Die
Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Liste der Systemobjekte
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.asp
- Aspekt der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg)
DataModel
asp.eigenschaften
angenommen.
Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere
Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen
Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg, Aspect aspect)
DataModel
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage abgefragt werden. Die
Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.aspect
- Aspekt der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(SystemObject[] objects, AttributeGroupUsage usage)
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage abgefragt werden.
Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.usage
- Attributgruppenverwendung der gewünschten Datensätze.objects
ein
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppenverwendung
Kombination hat.private Data[] getConfigurationDataRemote(List<SystemObject> objects, AttributeGroupUsage usage)
getConfigurationData
, die im Gegensatz zu dieser keine Daten aus dem Cache liest (wohl aber welche hineinschreibt).objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.usage
- Attributgruppenverwendung der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppenverwendung
Kombination hat.public short getActiveVersion(ConfigurationArea configurationArea)
DataModel
getActiveVersion
in interface DataModel
configurationArea
- der KonfigurationsbereichData getConfigurationData(SystemObject object, AttributeGroup atg)
asp.eigenschaften
" angenommen.object
- SystemObject des gewünschten Datensatzes.atg
- Attributgruppe des gewünschten Datensatzes.null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe
hat.Data getConfigurationData(SystemObject object, AttributeGroupUsage atgUsage)
object
- SystemObject des gewünschten Datensatzes.atgUsage
- Attributgruppenverwendung des gewünschten Datensatzes.null
, wenn das Objekt keinen Datensatz der angegebenen
Attributgruppenverwendung hat.public final long getConfigurationAuthorityId()
final void addSet(DafConfigurationObject configurationObject, ObjectSet set) throws ConfigurationChangeException
configurationObject
- Objekt, dem eine neue Menge zugeordnet werden soll.set
- Menge, die dem Konfigurationsobjekt zugeordnet werden soll.ConfigurationChangeException
- Die Konfiguration führt den Auftrag nicht aus. Ein Grund wäre zum Beispiel, dass die Konfiguration nicht der
Konfigurationsverantwortliche für dieses Objekt ist.final void removeSet(DafConfigurationObject configurationObject, ObjectSet set) throws ConfigurationChangeException
configurationObject
- Objekt, von dem eine Menge entfernt werden sollset
- Menge, die entfernt werden soll.ConfigurationChangeException
- Die Konfiguration führt den Auftrag nicht aus. Ein Grund wäre zum Beispiel, dass die Konfiguration nicht der
Konfigurationsverantwortliche für dieses Objekt ist.final List<SystemObject> getElementsOfType(DafSystemObjectType type, long time)
type
- Type, der geprüft werden solltime
- Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.final List<SystemObject> getElementsOfTypeInPeriod(DafSystemObjectType type, long startTime, long endTime)
type
- die Id des Typs.startTime
- Erster Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.endTime
- Letzter Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.final List<SystemObject> getElementsOfTypeDuringPeriod(DafSystemObjectType type, long startTime, long endTime)
type
- die Id des Typs.startTime
- Erster Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.endTime
- Letzter Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.private List<SystemObject> castInterfaceToClass(Collection<SystemObject> systemObjects)
systemObjects
- Collection, deren Elemente gecastet werden müssenfinal List getSetElements(DafObjectSet set, long time)
set
- Menge, aus der die Objekte angefordert werden sollentime
- Zeitpunkt in Millisekunden seit 1970final List<SystemObject> getSetElementsInPeriod(DafObjectSet set, long startTime, long endTime)
set
- Menge, aus der die Objekte angefordert werden sollenstartTime
- Erster Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.endTime
- Letzter Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.final List<SystemObject> getSetElementsDuringPeriod(DafObjectSet set, long startTime, long endTime)
set
- Menge, aus der die Objekte angefordert werden sollenstartTime
- Erster Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.endTime
- Letzter Zeitpunkt des Zeitbereichs in Millisekunden seit 1970.final List<SystemObject> getSetElementsInNextVersion(DafObjectSet set)
set
- Menge, aus der die Objekte angefordert werden sollenfinal List<SystemObject> getSetElementsInVersion(DafObjectSet set, short version)
set
- Menge, in der die Objekte betrachtet werden sollenversion
- Version der Konfigurationfinal List<SystemObject> getSetElementsInAllVersions(DafObjectSet set, short fromVersion, short toVersion)
set
- Menge, die die Elemente enthält, die betrachtet werden sollen.fromVersion
- Erste Version des Bereichs von KonfigurationversionentoVersion
- Letzte Version des Bereichs von Konfigurationversionenfinal List<SystemObject> getSetElementsInAnyVersions(DafObjectSet set, short fromVersion, short toVersion)
set
- Menge, aus der die Objekte angefordert werden sollenfromVersion
- Erste Version des Bereichs von KonfigurationversionentoVersion
- Letzte Version des Bereichs von Konfigurationversionenvoid setConfigurationData(SystemObject systemObject, AttributeGroupUsage atgUsage, Data data) throws ConfigurationChangeException
systemObject
- Systemobjekt an dem der Datensatz geändert werden soll.atgUsage
- Attributgruppenverwendung des zu ändernden Datensatzesdata
- Der neue Datensatz. Wird null
angegeben, wird der Datensatz am Objekt gelöscht.ConfigurationChangeException
- Wenn der Datensatz nicht geändert werden konnte.public AttributeGroupUsage getAttributeGroupUsage(long usageIdentification)
DataModel
getAttributeGroupUsage
in interface DataModel
usageIdentification
- Identifizierung dieser Attributgruppenverwendung bei der Kommunikation über den Datenverteiler.null
, wenn es keine Attributgruppenverwendung mit der angegebenen
Identifizierung gibt.