public class KExDaVObject
extends java.lang.Object
Kapselt ein Systemobjekt auf einem Datenverteiler. Bietet allgemeine Funktionen wie Prüfung auf Existenz und das Senden und Empfangen von Daten. Im Gegensatz zu normalen Systemobjekten kann man sich mit dieser Klasse auch als Sender/Empfänger anmelden, wenn das zugehörige Objekt nicht auf dem Datenverteiler existiert. Die wirkliche Anmeldung wird dann nachgetragen, sobald das Objekt erstellt wird.
Modifier and Type | Class and Description |
---|---|
private class |
KExDaVObject.InnerReceiver |
private class |
KExDaVObject.InnerSender
Klasse, die einen Sender (mit Sendesteuerung) implementiert
|
private class |
KExDaVObject.Listener |
Modifier and Type | Field and Description |
---|---|
private ClientDavInterface |
_connection |
private java.util.Collection<ExistenceListener> |
_existenceListeners |
private ManagerInterface |
_manager |
private ObjectSpecification |
_objectSpecification |
private java.util.Map<KExDaVReceiver,KExDaVObject.InnerReceiver> |
_receivers |
private java.util.Map<KExDaVSender,KExDaVObject.InnerSender> |
_senders |
private SystemObject |
_wrappedObject |
Constructor and Description |
---|
KExDaVObject(ObjectSpecification objectSpecification,
ClientDavInterface connection,
ManagerInterface manager)
Erstellt ein neues KExDavObject
|
KExDaVObject(java.lang.String pid,
ClientDavInterface connection,
ManagerInterface manager)
Erstellt ein neues KExDavObject
|
Modifier and Type | Method and Description |
---|---|
void |
addExistenceListener(ExistenceListener e)
Erstellt einen Listener auf die Erstellung dieses Objekts
|
private static boolean |
checkType(SystemObjectType type,
AttributeGroup attributeGroup) |
private java.util.Collection<DataAndATGUsageInformation> |
convertConfigurationData(java.util.Map<PidAttributeGroupUsage,Data> allConfigurationData) |
void |
create(ConfigurationArea configurationArea,
java.lang.String pid,
java.lang.String typePid,
java.lang.String objectName,
java.util.Map<PidAttributeGroupUsage,Data> allConfigurationData,
long origId,
java.lang.String origConfigAuthority)
Erstellt dieses Objekt
|
private Data |
createProperties(long origId,
java.lang.String origConfigAuthority) |
boolean |
equals(java.lang.Object o) |
boolean |
exists()
Prüft ob das Objekt existiert
|
java.util.Map<PidAttributeGroupUsage,KExDaVAttributeGroupData> |
getAllConfigurationData()
Liest alle Konfigurationsdaten dieses Objekts
|
java.lang.String |
getConfigurationAuthority() |
ClientDavInterface |
getConnection()
Gibt die Datenverteiler-Verbindung zurück, zu der dieses Objekt gehört
|
ExchangeProperties |
getExchangeProperties()
Gibt die konfigurierte Auttributgruppe für ausgetausche Objekte zurück
|
static ExchangeProperties |
getExchangeProperties(SystemObject wrappedObject)
Gibt die konfigurierte Auttributgruppe für ausgetausche Objekte zurück
|
long |
getId() |
java.lang.String |
getName()
Gibt den Namen dieses Objekts zurück
|
ObjectSpecification |
getObjectSpecification()
Gibt die Spezifikation dieses Objekts zurück
|
java.lang.String |
getPid() |
java.lang.String |
getType()
Gibt den Typ dieses Objekts zurück
|
SystemObject |
getWrappedObject()
Gibt das SystemObject zurück
|
private SystemObject |
getWrappedObjectOrThrowException() |
int |
hashCode() |
boolean |
invalidate(boolean force)
Löscht dieses Objekt
|
boolean |
isConfigurationObject()
Prüft, ob das Objekt ein Konfigurationsobjekt ist
|
boolean |
isCopy()
Gibt true zurück, wenn das Objekt mit diesem KExDaV von einem anderen Datenverteilersystem kopiert wurde, d.h. wenn es also “im Besitz” dieses KExDaVs ist und damit z.B. auch gelöscht werden darf.
|
private DataDescription |
makeDataDescription(java.lang.String atg,
java.lang.String asp,
short simulationVariant) |
private void |
registerReceiver(KExDaVObject.InnerReceiver innerReceiver,
SystemObject systemObject) |
boolean |
registerReceiver(java.lang.String atg,
java.lang.String asp,
short simulationVariant,
ReceiverRole receiverRole,
ReceiveOptions receiveOptions,
KExDaVReceiver receiver)
Anmeldung als Empfänger/Senke
|
private void |
registerSender(KExDaVObject.InnerSender innerSender,
SystemObject systemObject) |
boolean |
registerSender(java.lang.String atg,
java.lang.String asp,
short simulationVariant,
SenderRole senderRole,
KExDaVSender senderObject)
Anmeldung als Sender oder Quelle
|
void |
removeExistenceListener(ExistenceListener e)
Entfernt einen Listener auf die Löschung dieses Objekts
|
void |
sendData(KExDaVSender senderObject,
Data data,
long dataTime,
boolean delayed)
Sendet Daten an das Objekt
|
void |
setConfigurationData(java.util.Map<PidAttributeGroupUsage,Data> configurationData)
Setzt Konfigurationsdaten
|
private void |
setWrappedObject(SystemObject wrappedObject) |
java.lang.String |
toString() |
(package private) static Aspect |
tryGetAspect(ClientDavInterface connection,
java.lang.String pid) |
(package private) static AttributeGroup |
tryGetAttributeGroup(ClientDavInterface connection,
java.lang.String pid) |
void |
unsubscribeReceiver(KExDaVReceiver receiverObject)
Meldet einen Empfänger ab
|
void |
unsubscribeSender(KExDaVSender senderObject)
Meldet einen Sender ab
|
private SystemObject _wrappedObject
private final ClientDavInterface _connection
private final java.util.Map<KExDaVSender,KExDaVObject.InnerSender> _senders
private final java.util.Map<KExDaVReceiver,KExDaVObject.InnerReceiver> _receivers
private final java.util.Collection<ExistenceListener> _existenceListeners
private final ObjectSpecification _objectSpecification
private final ManagerInterface _manager
public KExDaVObject(java.lang.String pid, ClientDavInterface connection, ManagerInterface manager)
Erstellt ein neues KExDavObject
pid
- Objekt-Pidconnection
- Datenverteiler-Verbindungmanager
- KExDaV-Manager-Objekt, an das Benachrichtigungen gesendet werden könnenpublic KExDaVObject(ObjectSpecification objectSpecification, ClientDavInterface connection, ManagerInterface manager)
Erstellt ein neues KExDavObject
objectSpecification
- Objekt-Spezifikationconnection
- Datenverteiler-Verbindungmanager
- KExDaV-Manager-Objekt, an das Benachrichtigungen gesendet werden könnenpublic boolean registerReceiver(java.lang.String atg, java.lang.String asp, short simulationVariant, ReceiverRole receiverRole, ReceiveOptions receiveOptions, KExDaVReceiver receiver) throws MissingObjectException
Anmeldung als Empfänger/Senke
atg
- Attributgruppeasp
- AspektsimulationVariant
- SimulationsvariantereceiverRole
- (Empfänger oder Senke)receiveOptions
- (Delta oder Nachgeliefert oder Normal)receiver
- Objekt an das Empfangene Daten gesendet werden. Jedes Objekt ist einer Datenidentifikation fest zugeordnet und kann nur einmal angemeldet werden.MissingObjectException
- Falls Attributgruppe oder Aspekt nicht vorhanden sindprivate void registerReceiver(KExDaVObject.InnerReceiver innerReceiver, SystemObject systemObject)
public boolean registerSender(java.lang.String atg, java.lang.String asp, short simulationVariant, SenderRole senderRole, KExDaVSender senderObject) throws MissingObjectException
Anmeldung als Sender oder Quelle
atg
- Attributgruppeasp
- AspektsimulationVariant
- SimulationsvariantesenderRole
- Sender oder QuellesenderObject
- Beliebiges Objekt das zu diesem Sender gespeichert wird. Jedes Objekt ist einer Datenidentifikation fest zugeordnet und kann nur einmal angemeldet werden.MissingObjectException
- Falls Attributgruppe oder Aspekt nicht vorhanden sindprivate static boolean checkType(SystemObjectType type, AttributeGroup attributeGroup)
private void registerSender(KExDaVObject.InnerSender innerSender, SystemObject systemObject)
private DataDescription makeDataDescription(java.lang.String atg, java.lang.String asp, short simulationVariant) throws MissingObjectException
MissingObjectException
public void sendData(KExDaVSender senderObject, Data data, long dataTime, boolean delayed)
Sendet Daten an das Objekt
senderObject
- Sender-Objektdata
- DatendataTime
- Zeit des Datensatzesdelayed
- true
, wenn der im Ergebnis enthaltene Datensatz als nachgeliefert gekennzeichnet werden soll.public void unsubscribeSender(KExDaVSender senderObject)
Meldet einen Sender ab
senderObject
- Sender-Objektpublic void unsubscribeReceiver(KExDaVReceiver receiverObject)
Meldet einen Empfänger ab
receiverObject
- Empfänger-Objektpublic ClientDavInterface getConnection()
Gibt die Datenverteiler-Verbindung zurück, zu der dieses Objekt gehört
public SystemObject getWrappedObject()
Gibt das SystemObject zurück
private void setWrappedObject(SystemObject wrappedObject)
public void addExistenceListener(ExistenceListener e)
Erstellt einen Listener auf die Erstellung dieses Objekts
e
- Callbackpublic void removeExistenceListener(ExistenceListener e)
Entfernt einen Listener auf die Löschung dieses Objekts
e
- Callbackpublic boolean invalidate(boolean force) throws ConfigurationChangeException, MissingKExDaVAttributeGroupException
Löscht dieses Objekt
force
- Soll das Objekt auch gelöscht werden, wenn es nicht von KExDaV kopiert wurde?ConfigurationChangeException
- Falls das Ändern der Konfiguration fehlschlägt (z.B. keine Berechtigung)MissingKExDaVAttributeGroupException
public java.util.Map<PidAttributeGroupUsage,KExDaVAttributeGroupData> getAllConfigurationData() throws MissingObjectException
Liest alle Konfigurationsdaten dieses Objekts
MissingObjectException
- Falls ein Objekt fehlt (entweder das Systemobjekt, oder die Attributgruppe oder der Aspekt)private SystemObject getWrappedObjectOrThrowException() throws MissingObjectException
MissingObjectException
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
static Aspect tryGetAspect(ClientDavInterface connection, java.lang.String pid) throws MissingObjectException
MissingObjectException
static AttributeGroup tryGetAttributeGroup(ClientDavInterface connection, java.lang.String pid) throws MissingObjectException
MissingObjectException
public void create(ConfigurationArea configurationArea, java.lang.String pid, java.lang.String typePid, java.lang.String objectName, java.util.Map<PidAttributeGroupUsage,Data> allConfigurationData, long origId, java.lang.String origConfigAuthority) throws MissingObjectException, ConfigurationChangeException, MissingKExDaVAttributeGroupException
Erstellt dieses Objekt
configurationArea
- Konfigurationsbereichpid
- typePid
- Objekt-Typ-PidobjectName
- Objekt-name falls vorhandenallConfigurationData
- KonfigurationsdatenorigId
- origConfigAuthority
- MissingObjectException
- Falls der angegebene Typ nicht existiert oder nicht vom Typ DynamicObjectType ist.ConfigurationChangeException
- Falls die Konfigurationsänderung nicht durchgeführt werden konnteMissingKExDaVAttributeGroupException
private Data createProperties(long origId, java.lang.String origConfigAuthority) throws MissingObjectException
MissingObjectException
private java.util.Collection<DataAndATGUsageInformation> convertConfigurationData(java.util.Map<PidAttributeGroupUsage,Data> allConfigurationData)
public java.lang.String getType() throws MissingObjectException
Gibt den Typ dieses Objekts zurück
MissingObjectException
- Falls Objekt nicht existiertpublic ObjectSpecification getObjectSpecification()
Gibt die Spezifikation dieses Objekts zurück
public java.lang.String getName() throws MissingObjectException
Gibt den Namen dieses Objekts zurück
MissingObjectException
- Falls Objekt nicht existiertpublic boolean exists()
Prüft ob das Objekt existiert
public boolean isConfigurationObject()
Prüft, ob das Objekt ein Konfigurationsobjekt ist
public boolean isCopy() throws MissingKExDaVAttributeGroupException
Gibt true zurück, wenn das Objekt mit diesem KExDaV von einem anderen Datenverteilersystem kopiert wurde, d.h. wenn es also “im Besitz” dieses KExDaVs ist und damit z.B. auch gelöscht werden darf.
MissingKExDaVAttributeGroupException
public ExchangeProperties getExchangeProperties() throws MissingKExDaVAttributeGroupException
Gibt die konfigurierte Auttributgruppe für ausgetausche Objekte zurück
MissingKExDaVAttributeGroupException
- Bei nicht existierender Attributgruppe in der Konfiguration (altes Datenmodell)public static ExchangeProperties getExchangeProperties(SystemObject wrappedObject) throws MissingKExDaVAttributeGroupException
Gibt die konfigurierte Auttributgruppe für ausgetausche Objekte zurück
wrappedObject
- Objekt, dessen Infos abgerufen werden sollenMissingKExDaVAttributeGroupException
- Bei nicht existierender Attributgruppe in der Konfiguration (altes Datenmodell)public void setConfigurationData(java.util.Map<PidAttributeGroupUsage,Data> configurationData) throws MissingObjectException, ConfigurationChangeException
Setzt Konfigurationsdaten
configurationData
- KonfigurationsdatenMissingObjectException
- Das Objekt existiert nichtConfigurationChangeException
- Die Konfiguration unterstützt die Änderung nichtpublic java.lang.String getPid() throws MissingObjectException
MissingObjectException
public long getId() throws MissingObjectException
MissingObjectException
public java.lang.String getConfigurationAuthority() throws MissingObjectException
MissingObjectException