de.bsvrz.sys.funclib.operatingMessage
Class MessageSender

java.lang.Object
  extended by de.bsvrz.sys.funclib.operatingMessage.MessageSender

public class MessageSender
extends Object

Diese Klasse dient zur Erzeugung von Betriebsmeldungen. Diese Klasse ist als Singleton erstellt. Somit wird nur ein Objekt dieser Klasse angelegt. Durch die init-Methode wird die Verbindung zum Datenverteiler und die Kennung der Applikation an das Sender-Objekt übergeben. Mit Hilfe der verschiedenen sendMessage-Methoden können Betriebsmeldungen an die Betriebsmeldungsverwaltung abgesetzt werden.

Existiert noch keine Verbindung zum Datenverteiler beim Senden einer Betriebsmeldung, so wird eine Warnung zurückgegeben.

Author:
Kappich Systemberatung
See Also:
init(de.bsvrz.dav.daf.main.ClientDavInterface, java.lang.String, java.lang.String), sendMessage(de.bsvrz.sys.funclib.operatingMessage.MessageType, de.bsvrz.sys.funclib.operatingMessage.MessageGrade, java.lang.String)

Nested Class Summary
private  class MessageSender.OperatingMessageSender
          Diese Klasse fragt den aktuellen Zustand der Sendesteuerung ab.
 
Field Summary
private  long _applicationID
          ID der Applikation, die die Informationsmeldung erzeugt hat.
private  String _applicationLabel
          Für jede Applikation eindeutige Kennung, die nach einem Neustart gleich bleibt.
private  SystemObjectType _applicationType
          Typ der Applikation, die die Informationsmeldung erzeugt hat.
private  MessageCauser _causer
          Die Urlasserinformation, falls keine übergeben wird.
private  ClientDavInterface _connection
          Die Verbindung zum Datenverteiler.
private  long _consecutiveNumber
          LaufendeNummer: Laufende Nummerierung der durch die Applikation seit dem Applikationsstart erzeugten Informationsmeldungen.
private  DataDescription _dataDescriptionSender
          Die DataDescription zum Senden von Betriebsmeldungen.
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  SystemObject _messageObject
          Dieses Systemobjekt muss vom typ.betriebsMeldungsVerwaltung sein und wird zum Versenden der Betriebsmeldungen eingesetzt.
private  MessageSender.OperatingMessageSender _operatingMessageSender
          Das Sende-Objekt für den Versand von Betriebsmeldungen.
private  String _rootName
          Speichert den Klassennamen der Applikation
private static MessageSender INSTANCE
          Das Singleton wird in jedem Fall erzeugt.
 
Constructor Summary
private MessageSender()
          Privater Konstruktor erzeugt ein leeres Objekt dieser Klasse.
 
Method Summary
private  String getCallPosition(Throwable t)
          Bestimmt zur Betriebsmeldung die Position im Code, an der die Betriebsmeldung rausgeschickt wurde.
static MessageSender getInstance()
          Gibt die Instanz dieser Klasse zurück.
 void init(ClientDavInterface connection, String applicationName, String applicationLabel)
          Initialisiert das Objekt indem die Verbindung zum Datenverteiler und die Kennung der Applikation übergeben wird.
private  long nextConsecutiveNumber()
          Gibt die laufende Nummer zurück und erhöht sie um eins.
 void sendMessage(MessageType type, MessageGrade grade, String message)
          Die einfachste Version eine Betriebsmeldung zu verschicken.
 void sendMessage(MessageType type, String messageTypeAddOn, MessageGrade grade, SystemObject referenceObject, MessageCauser causer, String message)
          Hierbei handelt es sich um eine Betriebsmeldung, wo nur die ID und die GutMeldung fehlt.
 void sendMessage(String id, MessageType type, String messageTypeAddOn, MessageGrade grade, MessageState state, String message)
          Bei dieser Betriebsmeldung wird neben dem MeldungsTyp, der MeldungsKlasse und des Meldungstextes noch eine ID und ob es sich hierbei um eine GutMeldung handelt, übergeben.
 void sendMessage(String id, MessageType type, String messageTypeAddOn, MessageGrade grade, SystemObject referenceObject, MessageState state, MessageCauser causer, String message)
          Die vollständige Betriebsmeldung.
 void setApplicationLabel(String applicationLabel)
          Die ApplikationsKennung kann mit dieser Methode nachträglich gesetzt werden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

private static MessageSender INSTANCE
Das Singleton wird in jedem Fall erzeugt. Sollte jedoch die Verbindung zum Datenverteiler noch nicht vorhanden sein, wird bei sendMessage(de.bsvrz.sys.funclib.operatingMessage.MessageType, de.bsvrz.sys.funclib.operatingMessage.MessageGrade, java.lang.String) eine Warnung ausgegeben!


_debug

private static Debug _debug
DebugLogger für Debug-Ausgaben


_connection

private ClientDavInterface _connection
Die Verbindung zum Datenverteiler.


_operatingMessageSender

private MessageSender.OperatingMessageSender _operatingMessageSender
Das Sende-Objekt für den Versand von Betriebsmeldungen.


_messageObject

private SystemObject _messageObject
Dieses Systemobjekt muss vom typ.betriebsMeldungsVerwaltung sein und wird zum Versenden der Betriebsmeldungen eingesetzt.


_dataDescriptionSender

private DataDescription _dataDescriptionSender
Die DataDescription zum Senden von Betriebsmeldungen.


_applicationID

private long _applicationID
ID der Applikation, die die Informationsmeldung erzeugt hat.


_consecutiveNumber

private long _consecutiveNumber
LaufendeNummer: Laufende Nummerierung der durch die Applikation seit dem Applikationsstart erzeugten Informationsmeldungen. Aus der Kombination von ApplikationsID und LaufendeNummer lässt sich prüfen, ob Meldungen verloren wurden.


_applicationType

private SystemObjectType _applicationType
Typ der Applikation, die die Informationsmeldung erzeugt hat.


_applicationLabel

private String _applicationLabel
Für jede Applikation eindeutige Kennung, die nach einem Neustart gleich bleibt.


_causer

private MessageCauser _causer
Die Urlasserinformation, falls keine übergeben wird. Sie besteht aus dem lokalen Benutzer, der sich beim Datenverteiler angemeldet hat und ohne die Angabe einer Ursache und eines Veranlassers.


_rootName

private String _rootName
Speichert den Klassennamen der Applikation

Constructor Detail

MessageSender

private MessageSender()
Privater Konstruktor erzeugt ein leeres Objekt dieser Klasse.

Method Detail

getInstance

public static MessageSender getInstance()
Gibt die Instanz dieser Klasse zurück. Ein neues Objekt wird erstellt, falls noch keines vorhanden ist.

Returns:
Objekt dieser Klasse

init

public void init(ClientDavInterface connection,
                 String applicationName,
                 String applicationLabel)
Initialisiert das Objekt indem die Verbindung zum Datenverteiler und die Kennung der Applikation übergeben wird.

Parameters:
connection - Verbindung zum Datenverteiler
applicationName - Name der Applikation
applicationLabel - eindeutige Kennung der Applikation

sendMessage

public void sendMessage(MessageType type,
                        MessageGrade grade,
                        String message)
Die einfachste Version eine Betriebsmeldung zu verschicken. Die ID bleibt leer, es wird kein KonfigurationsObjekt angegeben, es handelt sich um eine neue Meldung und als Urlasser wird der angemeldete Benutzer mit leerer Ursache und Veranlasser verschickt.

Parameters:
type - der Meldungstyp
grade - die Meldungsklasse
message - Text der Meldung

sendMessage

public void sendMessage(String id,
                        MessageType type,
                        String messageTypeAddOn,
                        MessageGrade grade,
                        MessageState state,
                        String message)
Bei dieser Betriebsmeldung wird neben dem MeldungsTyp, der MeldungsKlasse und des Meldungstextes noch eine ID und ob es sich hierbei um eine GutMeldung handelt, übergeben.

Parameters:
id - ID der Meldung. Dieses Attribut kann von der Applikation gesetzt werden, um einen Bezug zu einer vorherigen Meldung herzustellen.
type - der MeldungsTyp
messageTypeAddOn - der MeldungsTypZusatz
grade - die MeldungsKlasse
state - Gibt den Zustand einer Meldung an.
message - Text der Meldung

sendMessage

public void sendMessage(MessageType type,
                        String messageTypeAddOn,
                        MessageGrade grade,
                        SystemObject referenceObject,
                        MessageCauser causer,
                        String message)
Hierbei handelt es sich um eine Betriebsmeldung, wo nur die ID und die GutMeldung fehlt.

Parameters:
type - der MeldungsTyp
messageTypeAddOn - der MeldungsTypZusatz
grade - die MeldungsKlasse
referenceObject - Referenz auf ein beliebiges Konfigurationsobjekt, auf das sich die Meldung bezieht.
causer - Urlasserinformation (Referenz auf den Benutzer, der die Meldung erzeugt hat, Angabe einer Ursache für die Meldung und der Veranlasser für die Meldung)
message - Text der Meldung

sendMessage

public void sendMessage(String id,
                        MessageType type,
                        String messageTypeAddOn,
                        MessageGrade grade,
                        SystemObject referenceObject,
                        MessageState state,
                        MessageCauser causer,
                        String message)
Die vollständige Betriebsmeldung. Sie enthält alle Parameter, die für eine Betriebsmeldung in Frage kommen können.

Parameters:
id - ID der Meldung. Dieses Attribut kann von der Applikation gesetzt werden, um einen Bezug zu einer vorherigen Meldung herzustellen.
type - der MeldungsTyp
messageTypeAddOn - der MeldungsTypZusatz
grade - die MeldungsKlasse
referenceObject - Referenz auf ein beliebiges Konfigurationsobjekt, auf das sich die Meldung bezieht.
state - Gibt den Zustand einer Meldung an.
causer - Urlasserinformation (Referenz auf den Benutzer, der die Meldung erzeugt hat, Angabe einer Ursache für die Meldung und der Veranlasser für die Meldung)
message - Text der Meldung

getCallPosition

private String getCallPosition(Throwable t)
Bestimmt zur Betriebsmeldung die Position im Code, an der die Betriebsmeldung rausgeschickt wurde. Angegeben wird der Klassenname, der Methodenname und die Zeilennummer.

Returns:
die Aufrufposition der Betriebsmeldung

nextConsecutiveNumber

private long nextConsecutiveNumber()
Gibt die laufende Nummer zurück und erhöht sie um eins.

Returns:
die laufende Nummer

setApplicationLabel

public void setApplicationLabel(String applicationLabel)
Die ApplikationsKennung kann mit dieser Methode nachträglich gesetzt werden.

Parameters:
applicationLabel - ApplikationsKennung - eindeutige Kennung dieser Applikation