com.sta.mlogger.MMessageFormater Maven / Gradle / Ivy
package com.sta.mlogger;
import java.util.Locale;
/**
* Name: MMessageFormater
* Description: Spezieller Message-Builder, der die String-Format-Methode
* verwendet. Es erfolgt kein Cachen der erzeugten Nachricht, die Nachricht wird
* also jedes Mal erneut erzeugt. Um den Cache-Mechanismus zu verwenden, muss
* ein MMessageBuilder vorgeschaltet werden.
*
* Comment:
* @see String#format(String, Object...)
* @see String#format(Locale, String, Object...)
*
* Copyright: Copyright (c) 2017, 2019, 2021
* Company: >StA-Soft<
* @author StA
* @version 1.0
*/
public class MMessageFormater implements IMessageBuilder
{
/**
* Locale-Objekt, falls verwendet, sonst null.
*/
private Locale myLocale = null;
/**
* Text bzw. Format-Angaben.
* @see String#format(String, Object...)
* @see String#format(Locale, String, Object...)
*/
private String myFormat;
/**
* Parameter-Objekte.
* @see String#format(String, Object...)
* @see String#format(Locale, String, Object...)
*/
private Object[] myObjects;
//===========================================================================
/**
* Constructor mit Text bzw. Format-Angaben und Parameter-Objekten.
* @param pFormat Text bzw. Format-Angaben
* @param pObjects Parameter-Objekte (kann auch leer/null sein)
*/
public MMessageFormater(String pFormat, Object... pObjects)
{
myFormat = pFormat;
myObjects = pObjects;
}
/**
* Constructor mit Text bzw. Format-Angaben und Parameter-Objekten.
* @param pLocale Locale-Objekt
* @param pFormat Text bzw. Format-Angaben
* @param pObjects Parameter-Objekte (kann auch leer/null sein)
*/
public MMessageFormater(Locale pLocale, String pFormat, Object... pObjects)
{
myLocale = pLocale;
myFormat = pFormat;
myObjects = pObjects;
}
@Override
public String getMessage()
{
return myLocale != null ? String.format(myLocale, myFormat, myObjects) : String.format(myFormat, myObjects);
}
}