com.sta.mlogger.MMessageBuilder Maven / Gradle / Ivy
package com.sta.mlogger;
/**
* Name: MessageHolder
* Description: Basisklasse f?r Klassen, die einen Text, der ggf. aus
* komplexeren String-Konstruktionen besteht, erst dann ermitteln und damit die
* String-Konstruktionen ausf?hren, wenn der Text tats?chlich ben?tigt wird.
*
* Comment: Dieses Basisklasse stellt die grundlegende Funktionalit?t bereits
* in verwendbarer Form zur Verf?gung.
*
* Copyright: Copyright (c) 2017
* Company: >StA-Soft<
* @author StA
* @version 1.0
*/
public class MMessageBuilder implements IMessageBuilder
{
/**
* Verbundener Message-Builder.
*/
private IMessageBuilder myMessageBuilder;
/**
* Die Message, falls bereits erzeugt, also eine Art Cache.
*/
private String myMessage = null;
/**
* Flag was angibt, ob die Message bereits erzeugt wurde, anfangs false
* (nein), wird nach Erzeugung der Message gesetzt (Hintergrund: die erzeugte
* Message kann auch null sein).
*/
private boolean myMessageBuilt = false;
/**
* Constructor mit Message-Builder.
* @param pMessageBuilder Message-Builder
*/
public MMessageBuilder(IMessageBuilder pMessageBuilder)
{
myMessageBuilder = pMessageBuilder;
}
/**
* Message erstellen, falls noch nicht geschehen, merken, Flag setzen und
* Message zur?ckliefern.
* @return neu erstellte bzw. bereits erstellte Message
*/
@Override
public String getMessage()
{
if (!myMessageBuilt)
{
myMessage = myMessageBuilder.getMessage();
myMessageBuilt = true;
}
return myMessage;
}
}