de.bsvrz.kex.tls.osi2osi3.redirection
Class RedirectionInfo

java.lang.Object
  extended by de.bsvrz.kex.tls.osi2osi3.redirection.RedirectionInfo

public class RedirectionInfo
extends Object

Klasse zur Verwaltung der Weiterleitungsinformationen.

Author:
Kappich Systemberatung

Field Summary
private static Debug _debug
           
(package private)  Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> _receiveEntries
          Map, wobei der Schlüssel die Knotennummer des Absenders ist.
(package private)  Set<NodeFgPair> _receiveNoNormalProcessing
          Set, in der alle Knoten - Funktionsgruppen - Kombinationen aufgeführt sind, die nicht "normal" behandelt werden sollen.
(package private)  Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> _sendEntries
          Map, wobei der Schlüssel die Knotennummer des Empfängers ist.
(package private)  Set<NodeFgPair> _sendNotToPrimalTarget
          Set, in der alle Knoten - Funktionsgruppen - Kombinationen aufgeführt sind, die nicht an des ursprüngliche Ziel geschickt werden sollen.
 
Constructor Summary
RedirectionInfo()
          Konstruktor.
 
Method Summary
private  void addEntry(Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> entries, NodeFgPair nodeFgPair, int[] destinations, Osi7SingleTelegramConverter converter)
          Ergänzt einen neuen Eintrag in der übergebenen Map.
(package private)  void addReceiveEntry(int knr, int fg, boolean normalProcessing, int[] destinations, Osi7SingleTelegramConverter converter)
          Fügt einen Eintrag in die Map zur Behandlung der empfangenen Telegramme hinzu.
 void addSendEntry(Integer knr, Integer fg, boolean normalProcessing, int[] destinations, Osi7SingleTelegramConverter converter)
          Fügt einen Eintrag in die Map zur Behandlung der zu sendenden Telegramme hinzu.
private  String getLocationDistance(int nodeNumber)
          Umrechnung der Knotennummer in Location und Distance
 Map<Osi7SingleTelegramConverter,Set<Integer>> getReceiveRedirectionMap(int knr, int fg)
          Gibt die Map zur Weiterleitung von empfangenden Telegrammen zurück.
 Map<Osi7SingleTelegramConverter,Set<Integer>> getSendRedirectionMap(int knr, int fg)
          Gibt die Map zur Weiterleitung von zu sendenen Telegrammen zurück.
(package private)  boolean normalProcessing(Set<NodeFgPair> nonNormalProcessing, int knr, int fg)
          Prüfung, ob für ein Set von Knoten-Funktionsgruppen Paaren bei einer bestimmten Kombination die "normale Behandlung" durchgeführt werden soll oder nicht.
 void printAllEntries()
          Gibt alle gespeicherten Einträge aus.
private  String printDestinations(Set<Integer> destinations)
          Gibt ein Set von Knotennummern als String zurück.
private  void printEntries(Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> entries, Set<NodeFgPair> noNormalProcessing)
          Ausgabe der Informationen zu den Empfangs oder Sendeinträgen.
 boolean receivedTelegramNormalProcessing(int knr, int fg)
          Gibt für ein Paar von Knotennummer des Senders und Funktionsgruppe an, ob Telegramme dieser Kombination auch lokal verarbeitet werden sollen (Rückgabe true)
 boolean sendTelegramToPrimalTarget(int knr, int fg)
          Gibt für ein Paar von Knotennummer des Senders und Funktionsgruppe an, ob Telegramme dieser Kombination auch lokal verarbeitet werden sollen (Rückgabe true)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_receiveEntries

Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> _receiveEntries
Map, wobei der Schlüssel die Knotennummer des Absenders ist. Als Wert wird in einer Struktur festgehalten, ob für eine bestimmte FG das Telegramm an weitere Zielknoten versendet werden muss und ob weiterhin die lokale Verarbeitung des Telegramms durchgeführt werden muss.


_receiveNoNormalProcessing

Set<NodeFgPair> _receiveNoNormalProcessing
Set, in der alle Knoten - Funktionsgruppen - Kombinationen aufgeführt sind, die nicht "normal" behandelt werden sollen.


_sendEntries

Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> _sendEntries
Map, wobei der Schlüssel die Knotennummer des Empfängers ist. Als Wert wird in einer Struktur festgehalten, ob für eine bestimmte FG das Telegramm an weitere Zielknoten versendet werden muss und ob weiterhin die lokale Verarbeitung des Telegramms durchgeführt werden muss.


_sendNotToPrimalTarget

Set<NodeFgPair> _sendNotToPrimalTarget
Set, in der alle Knoten - Funktionsgruppen - Kombinationen aufgeführt sind, die nicht an des ursprüngliche Ziel geschickt werden sollen.


_debug

private static final Debug _debug
Constructor Detail

RedirectionInfo

public RedirectionInfo()
Konstruktor.

Method Detail

addReceiveEntry

void addReceiveEntry(int knr,
                     int fg,
                     boolean normalProcessing,
                     int[] destinations,
                     Osi7SingleTelegramConverter converter)
Fügt einen Eintrag in die Map zur Behandlung der empfangenen Telegramme hinzu.

Parameters:
knr - Knotennummer, für den der Eintrag gilt
fg - Funktionsgruppe, wenn Null, dann zu allen Funktionsgruppen
normalProcessing - Ob auch zum Originalziel gesendet wird (true). Bei false wird dies unterdrückt.
destinations - Ziele, an die gesendet werden soll
converter - OSI7 Telegrammkonverter (falls vorhanden) sonst null.

getReceiveRedirectionMap

public Map<Osi7SingleTelegramConverter,Set<Integer>> getReceiveRedirectionMap(int knr,
                                                                              int fg)
Gibt die Map zur Weiterleitung von empfangenden Telegrammen zurück. Wenn keine Map für die vorgegebene Kombination von Knotennummer und FG vorhanden ist, wird null zurückgegeben. Schlüssel der Map ist der zu verwendende OSI7-Telegramm-Konverter. Der Schlüssel null besagt, dass hier vor der Weiterleitung keine Konvertierung auf OSI7 Ebene erfolgt. Als Wert enthält die Map eine Set der Ziele, zu denen das Telegramm weitergeleitet werden soll.

Parameters:
knr - Knotennummer
fg - Funktionsgruppe

receivedTelegramNormalProcessing

public boolean receivedTelegramNormalProcessing(int knr,
                                                int fg)
Gibt für ein Paar von Knotennummer des Senders und Funktionsgruppe an, ob Telegramme dieser Kombination auch lokal verarbeitet werden sollen (Rückgabe true)

Parameters:
knr - Knotennummer
fg - Funktionsgruppe
Returns:
true, wenn das ankommende Telegramm auch lokal verarbeitet werden soll.

normalProcessing

boolean normalProcessing(Set<NodeFgPair> nonNormalProcessing,
                         int knr,
                         int fg)
Prüfung, ob für ein Set von Knoten-Funktionsgruppen Paaren bei einer bestimmten Kombination die "normale Behandlung" durchgeführt werden soll oder nicht.

Parameters:
nonNormalProcessing - Set der Ausnahmen (die nicht normal behandelt werden sollen)
knr - Knotennummer
fg - Funktionsgruppe
Returns:
Ob die "normale Behandlung" durchgeführt werden soll oder nicht.

addSendEntry

public void addSendEntry(Integer knr,
                         Integer fg,
                         boolean normalProcessing,
                         int[] destinations,
                         Osi7SingleTelegramConverter converter)
Fügt einen Eintrag in die Map zur Behandlung der zu sendenden Telegramme hinzu.

Parameters:
knr - Knotennummer, für den der Eintrag gilt
fg - Funktionsgruppe, wenn Null, dann zu allen Funktionsgruppen
normalProcessing - Ob auch zum Originalziel gesendet wird (true). Bei false wird dies unterdrückt.
destinations - Ziele, an die gesendet werden soll
converter - Telegrammkonverter auf OSI7-Ebene. Wenn keine Konvertierung erfolgen soll wird null angegeben.

getSendRedirectionMap

public Map<Osi7SingleTelegramConverter,Set<Integer>> getSendRedirectionMap(int knr,
                                                                           int fg)
Gibt die Map zur Weiterleitung von zu sendenen Telegrammen zurück. Wenn keine Map für die vorgegebene Kombination von Knotennummer und FG vorhanden ist, wird null zurückgegeben. Schlüssel der Map ist der zu verwendende OSI7-Telegramm-Konverter. Der Schlüssel null besagt, dass hier vor der Weiterleitung keine Konvertierung auf OSI7 Ebene erfolgt. Als Wert enthält die Map eine Set der Ziele, zu denen das Telegramm weitergeleitet werden soll.

Parameters:
knr - Knotennummer
fg - Funktionsgruppe

sendTelegramToPrimalTarget

public boolean sendTelegramToPrimalTarget(int knr,
                                          int fg)
Gibt für ein Paar von Knotennummer des Senders und Funktionsgruppe an, ob Telegramme dieser Kombination auch lokal verarbeitet werden sollen (Rückgabe true)

Parameters:
knr - Knotennummer
fg - Funktionsgruppe
Returns:
true, wenn das ankommende Telegramm auch lokal verarbeitet werden soll.

addEntry

private void addEntry(Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> entries,
                      NodeFgPair nodeFgPair,
                      int[] destinations,
                      Osi7SingleTelegramConverter converter)
Ergänzt einen neuen Eintrag in der übergebenen Map.

Parameters:
entries - Map, die ergänzt werden soll.
nodeFgPair - Knoten-Funktionsgruppen Paar.
destinations - Zielknoten, an die weitergeleitet werden soll.
converter - OSI7-Konverter, der verwendet werden soll (bei null keiner).

printAllEntries

public void printAllEntries()
Gibt alle gespeicherten Einträge aus.


printEntries

private void printEntries(Map<NodeFgPair,Map<Osi7SingleTelegramConverter,Set<Integer>>> entries,
                          Set<NodeFgPair> noNormalProcessing)
Ausgabe der Informationen zu den Empfangs oder Sendeinträgen.

Parameters:
entries - Map, in der für die Knotennummer/Funktionsgruppenpaare Maps für die Maps von Telegrammkonvertern und Zielen, an die Telegramme weitergeleitet werden sollen, aufgeführt sind
noNormalProcessing - Set, in dem die Knotennummer/Funktionsgruppenpaare aufgeführt sind, für die keine normale Behandlung erfolgen soll.

printDestinations

private String printDestinations(Set<Integer> destinations)
Gibt ein Set von Knotennummern als String zurück.

Parameters:
destinations - Knotennummern
Returns:
String mit den Knotennummern

getLocationDistance

private String getLocationDistance(int nodeNumber)
Umrechnung der Knotennummer in Location und Distance

Returns:
Location und Distance