Class MessageTemplate

java.lang.Object
de.bsvrz.sys.funclib.operatingMessage.MessageTemplate

public class MessageTemplate
extends java.lang.Object
Diese Klasse erlaubt es, Vorlagen für die Erstellung von Betriebsmeldungs-Texten zu erzeugen. Eine Betriebsmeldungsvorlage besteht aus Textbausteinen, die später mit variablen Anteilen gefüllt werden können. Beispiel:

MessageTemplate template = new MessageTemplate( MessageGrade.INFORMATION, MessageType.APPLICATION_DOMAIN, MessageTemplate.fixed("Der Fahrstreifen "), MessageTemplate.object(), MessageTemplate.fixed(" enthält fehlerhafte Daten "), MessageTemplate.set("attr", " und ", "im Attribut ", "in den Attributen "), MessageTemplate.fixed(".") );

final SystemObject fahrstreifen = ...; OperatingMessage operatingMessage = template.newMessage(fahrstreifen); operatingMessage.add("attr", "qKfz"); operatingMessage.add("attr", "qPkw"); operatingMessage.add("attr", "qB"); operatingMessage.send();

Mit Ausgabe

operatingMessage = Der Fahrstreifen fs.test enthält fehlerhafte Daten in den Attributen qKfz, qPkw und qB.

und Versand einer entsprechenden Betriebsmeldung.

Folgende Methoden erzeugen Parameter-Bausteine:

- `fixed(String)`, ein fester String. - `variable(String)`, eine mit einem beliebigen String oder Objekt befüllbare Variable. (Siehe OperatingMessage.put(String, Object)) - `set(String, String)`, eine Variable, mit mit einer Menge von Objekten befüllt wird. Die doppelte Angabe eines Objekts wird automatisch verhindert, Objekte werden in der Reihenfolge ausgegeben, wie sie eingefügt werden. Optional können hier 2 weitere Parameter angegeben werden, mit denen ein Singular und Plural-Präfix definiert werden kann. (Siehe OperatingMessage.add(String, Object)) - `object()`, fügt eine Referenz auf das Systemobjekt ein, auf das sich die Meldung bezieht. (Siehe newMessage(SystemObject)) - `ids()`, Eine spezielle Mengen-Variable, die Kennungen der Betriebsmeldung enthält. Die IDs werden im MeldungsTypZusatz publiziert. (Siehe OperatingMessage.addId(Object))

Diese Klasse sowie die hier definierten OperatingMessageParam-Instanzen sind unveränderlich und threadsafe.

  • Constructor Details

  • Method Details

    • set

      public static MessageTemplate.OperatingMessageParam set​(java.lang.String variable, java.lang.String joiner)
      Erstellt einen neuen Platzhalter für eine Menge
      Parameters:
      variable - Variablenname
      joiner - Verbinder zwischen dem zweitletzen un dem letzten Eintrag. Sinnvoll sind z. B. ", ", " und ", " sowie ", ...
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • set

      public static MessageTemplate.OperatingMessageParam set​(java.lang.String variable, java.lang.String joiner, java.lang.String singular, java.lang.String plural)
      Erstellt einen neuen Platzhalter für eine Menge
      Parameters:
      variable - Variablenname
      joiner - Verbinder zwischen dem zweitletzten un dem letzten Eintrag. Sinnvoll sind z. B. ", ", " und ", " sowie ", ...
      singular - Singular-Präfix
      plural - Plural-Präfix
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • fixed

      public static MessageTemplate.OperatingMessageParam fixed​(java.lang.String s)
      Erstellt einen festen String-Wert als Textbaustein
      Parameters:
      s - Text
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • variable

      public static MessageTemplate.OperatingMessageParam variable​(java.lang.String variable)
      Erstellt einen neuen Platzhalter für eine einfache Variable
      Parameters:
      variable - Variablenname
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • object

      public static MessageTemplate.OperatingMessageParam object()
      Erstellt einen neuen Platzhalter für das Objekt, auf das sich die Betriebsmeldung bezieht
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • ids

      Erstellt einen neuen Platzhalter für die der Meldung zugeordneten Kennungen (MeldungsTypZusatz). Nicht identisch mit der Meldungs-ID, die zur Verknüpfung von Meldungen verwendet wird.
      Returns:
      Ein OperatingMessageParam-Objekt das im Konstruktor verwendet werden kann.
    • withIdFactory

      public MessageTemplate withIdFactory​(MessageIdFactory factory)
      Gibt eine Kopie dieses Objekts zurück, welches den übergebenen Lambda-Ausdruck zur Erzeugung einer Betriebsmeldungs-ID verwendet
      Parameters:
      factory - Lambda-Ausdruck o.ä. zur Erzeugung der Meldungs-ID
      Returns:
      MessageTemplate
    • withDebugLevel

      public MessageTemplate withDebugLevel​(java.util.logging.Level level)
      Gibt eine Kopie dieses Objekts zurück, welches den übergebenen Debug-Level für die Debug-Meldung verwendet (standardmäßig INFO)
      Parameters:
      level - Debug-Level
      Returns:
      MessageTemplate
    • getParams

      public java.util.List<MessageTemplate.OperatingMessageParam> getParams()
      Gibt die Textbausteine dieses Objekts zurück
      Returns:
      die im Konstruktor übergebenen Textbausteine dieses Objekts
    • getGrade

      public MessageGrade getGrade()
      Gibt die Schwere der Meldung zurück
      Returns:
      die Schwere der Meldung
    • getDomain

      public MessageType getDomain()
      Gibt die Art der Meldung zurück
      Returns:
      die Art der Meldung
    • newMessage

      public OperatingMessage newMessage​(de.bsvrz.dav.daf.main.config.SystemObject systemObject)
      Erstellt aus der Vorlage ein neues Betriebsmeldungs-Objekt, das mit konkreten Werten gefüllt und dann versand werden kann
      Parameters:
      systemObject - Objekt, auf das sich die Meldung bezieht (null ist erlaubt wodurch es dann kein Bezugsobjekt gibt)
      Returns:
      Betriebsmeldungs-Objekt
    • getLevel

      public java.util.logging.Level getLevel()
      Gibt den Level zurück, mit dem erzeugte Meldungen beim Versand über die Debug-Funktionen ausgegeben werden sollen.

      Mit Debug.OFF kann die Ausgabe über Debug deaktiviert werden, dann wird nur die Meldung über den Datenverteiler versendet

      Returns:
      den Level
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object