de.bsvrz.kex.kexdav.dataexchange
Class LowLevelDataPipe

java.lang.Object
  extended by de.bsvrz.kex.kexdav.dataexchange.LowLevelDataPipe

public class LowLevelDataPipe
extends Object

Empfängt Daten von einem Objekt in einem Datenverteiler und sendet diese an das gleiche oder ein anderes Objekt (vorzugsweise auf einem anderen Datenverteiler), evtl. unter Benutzung einer anderen Attributgruppe und eines anderen Aspekts sowie unter Zuhilfenahme eines Plugins, das die Daten gegebenenfalls anpasst, falls z.B. unterschiedliche Attributgruppen vorliegen.

Author:
Kappich Systemberatung

Nested Class Summary
private  class LowLevelDataPipe.MyReceiver
           
 
Field Summary
private  String _aspSource
           
private  String _aspTarget
           
private  String _atgSource
           
private  String _atgTarget
           
private  boolean _hasReceiver
           
private  boolean _hasSender
           
private  ManagerInterface _manager
           
private  ObjectManagerInterface _objectManagerInterface
           
private  KExDaVDataPlugin _plugin
           
private  DataTransferPolicy _policy
           
private  ReceiveOptions _receiveOptions
           
private  KExDaVReceiver _receiver
           
private  ReceiverRole _receiverRole
           
private  SenderRole _senderRole
           
private  short _simulationVariantSource
           
private  short _simulationVariantTarget
           
private  KExDaVObject _source
           
private  boolean _stopOnNextData
           
private  KExDaVObject _target
           
 
Constructor Summary
LowLevelDataPipe(KExDaVObject source, KExDaVObject target, String atgSource, String atgTarget, String aspSource, String aspTarget, short simulationVariantSource, short simulationVariantTarget, ReceiveOptions receiveOptions, ReceiverRole receiverRole, SenderRole senderRole, KExDaVDataPlugin plugin, ObjectManagerInterface objectManagerInterface, ManagerInterface manager)
          Erstellt eine Datenverbindungsklasse
 
Method Summary
 boolean equals(Object o)
           
 int hashCode()
           
(package private)  void sendDataToReceiver(KExDaVAttributeGroupData sourceData, DataState dataState, long dataTime)
          Sendet die Daten weiter an den Empfänger.
 void setPolicy(DataTransferPolicy policy)
          Setzt das Austauschverfahren (sinnvollerweise zu setzen, bevor der Datenaustausch gestartet wird)
 void start()
          Startet den Datentransfer
 void startOneTime()
          Führt nur einen Datenaustausch durch
 void stop()
          Stoppt den Datentransfer
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_source

private final KExDaVObject _source

_target

private final KExDaVObject _target

_atgSource

private final String _atgSource

_atgTarget

private final String _atgTarget

_aspSource

private final String _aspSource

_aspTarget

private final String _aspTarget

_simulationVariantSource

private final short _simulationVariantSource

_simulationVariantTarget

private final short _simulationVariantTarget

_receiveOptions

private final ReceiveOptions _receiveOptions

_plugin

private final KExDaVDataPlugin _plugin

_hasSender

private volatile boolean _hasSender

_hasReceiver

private volatile boolean _hasReceiver

_receiver

private final KExDaVReceiver _receiver

_receiverRole

private final ReceiverRole _receiverRole

_senderRole

private final SenderRole _senderRole

_objectManagerInterface

private final ObjectManagerInterface _objectManagerInterface

_manager

private final ManagerInterface _manager

_stopOnNextData

private volatile boolean _stopOnNextData

_policy

private DataTransferPolicy _policy
Constructor Detail

LowLevelDataPipe

public LowLevelDataPipe(KExDaVObject source,
                        KExDaVObject target,
                        String atgSource,
                        String atgTarget,
                        String aspSource,
                        String aspTarget,
                        short simulationVariantSource,
                        short simulationVariantTarget,
                        ReceiveOptions receiveOptions,
                        ReceiverRole receiverRole,
                        SenderRole senderRole,
                        KExDaVDataPlugin plugin,
                        ObjectManagerInterface objectManagerInterface,
                        ManagerInterface manager)
Erstellt eine Datenverbindungsklasse

Parameters:
source - Quell-Objekt
target - Ziel-Objekt
atgSource - Quell-Atg
atgTarget - Ziel-Atg
aspSource - Quell-Aspekt
aspTarget - Ziel-Aspekt
simulationVariantSource - Quell-Simulationsvariante
simulationVariantTarget - Ziel-Simulationsvariante
receiveOptions - Nur geänderte Daten übertragen?
receiverRole - Art der Anmeldung im Quellsystem
senderRole - Art der Anmeldung im Zielsystem
plugin - Modul, das das Kopieren und gegebenenfalls anpassen der Daten übernimmt. Im einfachsten Fall eine Instanz des BasicKExDaVDataPlugin.
objectManagerInterface - Verwaltung korrespondierender Objekte (optional)
manager - Callback für Ereignisse und Warnungen
Method Detail

setPolicy

public void setPolicy(DataTransferPolicy policy)
Setzt das Austauschverfahren (sinnvollerweise zu setzen, bevor der Datenaustausch gestartet wird)

Parameters:
policy - Austauschverfahren

start

public void start()
Startet den Datentransfer


stop

public void stop()
Stoppt den Datentransfer


startOneTime

public void startOneTime()
Führt nur einen Datenaustausch durch


sendDataToReceiver

void sendDataToReceiver(KExDaVAttributeGroupData sourceData,
                        DataState dataState,
                        long dataTime)
Sendet die Daten weiter an den Empfänger. Wird von der _policy aufgerufen.

Parameters:
sourceData - Daten
dataState - Datenzustand
dataTime - Datenzeit

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object