package at.gv.egovernment.moa.util; import java.util.Locale; /** * A singleton wrapper around a <code>Message</code> object. * * Provides the messages used in the common project. * * @author Patrick Peck * @version $Id$ */ public class MessageProvider { /** The location of the default message resources. */ private static final String[] DEFAULT_MESSAGE_RESOURCES = { "resources/properties/common_messages" }; /** The locale of the default message resources. */ private static final Locale[] DEFAULT_MESSAGE_LOCALES = new Locale[] { new Locale("de", "AT") }; /** The single instance of this class. */ private static MessageProvider instance; /** The messages provided by this <code>MessageProvider</code>. */ private Messages messages; /** * Return the single instance of the <code>MessageProvider</code>. * * Intialilizes the <code>MessageProvider</code> with the default message * locations: <code>/resources/properties/common_messages</code>. * * @return The single <code>MessageProvider</code>. */ public static synchronized MessageProvider getInstance() { if (instance == null) { instance = new MessageProvider(DEFAULT_MESSAGE_RESOURCES, DEFAULT_MESSAGE_LOCALES); } return instance; } /** * Create a <code>MessageProvider</code>. * * @param resourceNames The names of the resources containing the messages. * @param locales The corresponding locales. */ protected MessageProvider(String[] resourceNames, Locale[] locales) { this.messages = new Messages(resourceNames, locales); } /** * Get the message corresponding to a given message ID. * * @param messageId The ID of the message. * @param parameters The parameters to fill in into the message arguments. * @return The formatted message. */ public String getMessage(String messageId, Object[] parameters) { return messages.getMessage(messageId, parameters); } }