de.bsvrz.kex.kexdav.systemobjects
Class KExDaVObject

java.lang.Object
  extended by de.bsvrz.kex.kexdav.systemobjects.KExDaVObject

public class KExDaVObject
extends 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.

Author:
Kappich Systemberatung

Constructor Summary
KExDaVObject(ObjectSpecification objectSpecification, ClientDavInterface connection, ManagerInterface manager)
          Erstellt ein neues KExDavObject
KExDaVObject(String pid, ClientDavInterface connection, ManagerInterface manager)
          Erstellt ein neues KExDavObject
 
Method Summary
 void addExistenceListener(ExistenceListener e)
          Erstellt einen Listener auf die Erstellung dieses Objekts
 void create(ConfigurationArea configurationArea, String pid, String typePid, String objectName, Map<PidAttributeGroupUsage,Data> allConfigurationData, long origId, String origConfigAuthority)
          Erstellt dieses Objekt
 boolean equals(Object o)
           
 boolean exists()
          Prüft ob das Objekt existiert
 Map<PidAttributeGroupUsage,KExDaVAttributeGroupData> getAllConfigurationData()
          Liest alle Konfigurationsdaten dieses Objekts
 String getConfigurationAuthority()
           
 ClientDavInterface getConnection()
          Gibt die Datenverteiler-Verbindung zurück, zu der dieses Objekt gehört
 ExchangeProperties getExchangeProperties()
           
static ExchangeProperties getExchangeProperties(SystemObject wrappedObject)
           
 long getId()
           
 String getName()
          Gibt den Namen dieses Objekts zurück
 ObjectSpecification getObjectSpecification()
          Gibt die Spezifikation dieses Objekts zurück
 String getPid()
           
 String getType()
          Gibt den Typ dieses Objekts zurück
 SystemObject getWrappedObject()
          Gibt das SystemObject zurück
 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.
 boolean registerReceiver(String atg, String asp, short simulationVariant, ReceiverRole receiverRole, ReceiveOptions receiveOptions, KExDaVReceiver receiver)
          Anmeldung als Empfänger/Senke
 boolean registerSender(String atg, String asp, short simulationVariant, SenderRole senderRole, Object senderObject)
          Anmeldung als Sender oder Quelle
 void removeExistenceListener(ExistenceListener e)
          Erstellt einen Listener auf die Löschung dieses Objekts
 void sendData(Object senderObject, Data data, long dataTime)
          Sendet Daten an das Objekt
 void setConfigurationData(Map<PidAttributeGroupUsage,Data> configurationData)
          Setzt Konfigurationsdaten
 String toString()
           
 void unsubscribeReceiver(KExDaVReceiver receiverObject)
          Meldet einen Empfänger ab
 void unsubscribeSender(Object senderObject)
          Meldet einen Sender ab
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KExDaVObject

public KExDaVObject(String pid,
                    ClientDavInterface connection,
                    ManagerInterface manager)
Erstellt ein neues KExDavObject

Parameters:
pid - Objekt-Pid
connection - Datenverteiler-Verbindung
manager - KExDaV-Manager-Objekt, an das Benachrichtigungen gesendet werden können

KExDaVObject

public KExDaVObject(ObjectSpecification objectSpecification,
                    ClientDavInterface connection,
                    ManagerInterface manager)
Erstellt ein neues KExDavObject

Parameters:
objectSpecification - Objekt-Spezifikation
connection - Datenverteiler-Verbindung
manager - KExDaV-Manager-Objekt, an das Benachrichtigungen gesendet werden können
Method Detail

registerReceiver

public boolean registerReceiver(String atg,
                                String asp,
                                short simulationVariant,
                                ReceiverRole receiverRole,
                                ReceiveOptions receiveOptions,
                                KExDaVReceiver receiver)
                         throws MissingObjectException
Anmeldung als Empfänger/Senke

Parameters:
atg - Attributgruppe
asp - Aspekt
simulationVariant - Simulationsvariante
receiverRole - (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.
Throws:
MissingObjectException - Falls Attributgruppe oder Aspekt nicht vorhanden sind

registerSender

public boolean registerSender(String atg,
                              String asp,
                              short simulationVariant,
                              SenderRole senderRole,
                              Object senderObject)
                       throws MissingObjectException
Anmeldung als Sender oder Quelle

Parameters:
atg - Attributgruppe
asp - Aspekt
simulationVariant - Simulationsvariante
senderRole - Sender oder Quelle
senderObject - Beliebiges Objekt das zu diesem Sender gespeichert wird. Jedes Objekt ist einer Datenidentifikation fest zugeordnet und kann nur einmal angemeldet werden.
Returns:
true wenn das Objekt angemeldet wurde, sonst false.
Throws:
MissingObjectException - Falls Attributgruppe oder Aspekt nicht vorhanden sind

sendData

public void sendData(Object senderObject,
                     Data data,
                     long dataTime)
Sendet Daten an das Objekt

Parameters:
senderObject - Sender-Objekt
data - Daten
dataTime - Zeit des Datensatzes

unsubscribeSender

public void unsubscribeSender(Object senderObject)
Meldet einen Sender ab

Parameters:
senderObject - Sender-Objekt

unsubscribeReceiver

public void unsubscribeReceiver(KExDaVReceiver receiverObject)
Meldet einen Empfänger ab

Parameters:
receiverObject - Empfänger-Objekt

getConnection

public ClientDavInterface getConnection()
Gibt die Datenverteiler-Verbindung zurück, zu der dieses Objekt gehört

Returns:
Datenverteiler-Verbindung

getWrappedObject

public SystemObject getWrappedObject()
Gibt das SystemObject zurück

Returns:
SystemObject

addExistenceListener

public void addExistenceListener(ExistenceListener e)
Erstellt einen Listener auf die Erstellung dieses Objekts

Parameters:
e - Callback

removeExistenceListener

public void removeExistenceListener(ExistenceListener e)
Erstellt einen Listener auf die Löschung dieses Objekts

Parameters:
e - Callback

invalidate

public boolean invalidate(boolean force)
                   throws ConfigurationChangeException,
                          MissingKExDaVAttributeGroupException
Löscht dieses Objekt

Parameters:
force - Soll das Objekt auch gelöscht werden, wenn es nicht von KExDaV kopiert wurde?
Returns:
true wenn das Objekt nicht mehr existiert, sonst false
Throws:
ConfigurationChangeException - Falls das Ändern der Konfiguration fehlschlägt (z.B. keine Berechtigung)
MissingKExDaVAttributeGroupException

getAllConfigurationData

public Map<PidAttributeGroupUsage,KExDaVAttributeGroupData> getAllConfigurationData()
                                                                             throws MissingObjectException
Liest alle Konfigurationsdaten dieses Objekts

Returns:
Konfigurationsdaten
Throws:
MissingObjectException - Falls ein Objekt fehlt (entweder das Systemobjekt, oder die Attributgruppe oder der Aspekt)

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

create

public void create(ConfigurationArea configurationArea,
                   String pid,
                   String typePid,
                   String objectName,
                   Map<PidAttributeGroupUsage,Data> allConfigurationData,
                   long origId,
                   String origConfigAuthority)
            throws MissingObjectException,
                   ConfigurationChangeException,
                   MissingKExDaVAttributeGroupException
Erstellt dieses Objekt

Parameters:
configurationArea - Konfigurationsbereich
pid -
typePid - Objekt-Typ-Pid
objectName - Objekt-name falls vorhanden
allConfigurationData - Konfigurationsdaten
origId -
origConfigAuthority -
Throws:
MissingObjectException - Falls der angegebene Typ nicht existiert oder nicht vom Typ DynamicObjectType ist.
ConfigurationChangeException - Falls die Konfigurationsänderung nicht durchgeführt werden konnte
MissingKExDaVAttributeGroupException

getType

public String getType()
               throws MissingObjectException
Gibt den Typ dieses Objekts zurück

Returns:
Objekttyp als Pid
Throws:
MissingObjectException - Falls Objekt nicht existiert

getObjectSpecification

public ObjectSpecification getObjectSpecification()
Gibt die Spezifikation dieses Objekts zurück

Returns:
Objekt-Spezifikation

getName

public String getName()
               throws MissingObjectException
Gibt den Namen dieses Objekts zurück

Returns:
Objektname
Throws:
MissingObjectException - Falls Objekt nicht existiert

exists

public boolean exists()
Prüft ob das Objekt existiert

Returns:
True wenn es existiert

isConfigurationObject

public boolean isConfigurationObject()
Prüft, ob das Objekt ein Konfigurationsobjekt ist

Returns:
True wenn es ein Konfigurationsobjekt ist, false wenn es nicht existiert oder ein dynamisches Objekt ist.

isCopy

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.

Returns:
true, wenn das Objekt mit diesem KExDaV von einem anderen Datenverteilersystem kopiert wurde, sonst false
Throws:
MissingKExDaVAttributeGroupException

getExchangeProperties

public ExchangeProperties getExchangeProperties()
                                         throws MissingKExDaVAttributeGroupException
Throws:
MissingKExDaVAttributeGroupException

getExchangeProperties

public static ExchangeProperties getExchangeProperties(SystemObject wrappedObject)
                                                throws MissingKExDaVAttributeGroupException
Throws:
MissingKExDaVAttributeGroupException

setConfigurationData

public void setConfigurationData(Map<PidAttributeGroupUsage,Data> configurationData)
                          throws MissingObjectException,
                                 ConfigurationChangeException
Setzt Konfigurationsdaten

Parameters:
configurationData - Konfigurationsdaten
Throws:
MissingObjectException - Das Objekt existiert nicht
ConfigurationChangeException - Die Konfiguration unterstützt die Änderung nicht

getPid

public String getPid()
              throws MissingObjectException
Throws:
MissingObjectException

getId

public long getId()
           throws MissingObjectException
Throws:
MissingObjectException

getConfigurationAuthority

public String getConfigurationAuthority()
                                 throws MissingObjectException
Throws:
MissingObjectException