package org.marketcetera.util.log; import java.io.Serializable; import java.util.Locale; import org.marketcetera.util.misc.ClassVersion; /** * A bound message, representing the combination of an {@link * I18NMessage} and its parameters, if any. * * @author tlerios@marketcetera.com * @since 0.5.0 * @version $Id: I18NBoundMessage.java 16154 2012-07-14 16:34:05Z colin $ */ /* $License$ */ @ClassVersion("$Id: I18NBoundMessage.java 16154 2012-07-14 16:34:05Z colin $") public interface I18NBoundMessage extends Serializable { /** * An empty parameter list for a bound message. */ static final Serializable[] EMPTY_PARAMS= new Serializable[0]; /** * Returns the logger proxy that can log the receiver. * * @return The proxy. */ I18NLoggerProxy getLoggerProxy(); /** * Returns the message provider that can map the receiver. * * @return The message provider. */ I18NMessageProvider getMessageProvider(); /** * Returns the receiver's message. * * @return The message. */ I18NMessage getMessage(); /** * Returns the receiver's parameters. * * @return The parameters. */ Serializable[] getParams(); /** * Returns the receiver's parameters as objects. * * @return The parameters. */ Object[] getParamsAsObjects(); /** * A convenience method for {@link * I18NMessageProvider#getText(Locale,I18NMessage,Object...)}. */ String getText (Locale locale); /** * A convenience method for {@link * I18NMessageProvider#getText(I18NMessage,Object...)}. */ String getText(); /** * A convenience method for {@link * I18NLoggerProxy#error(Object,Throwable,I18NMessage,Object...)}. */ void error (Object category, Throwable throwable); /** * A convenience method for {@link * I18NLoggerProxy#error(Object,I18NMessage,Object...)}. */ void error (Object category); /** * A convenience method for {@link * I18NLoggerProxy#warn(Object,Throwable,I18NMessage,Object...)}. */ void warn (Object category, Throwable throwable); /** * A convenience method for {@link * I18NLoggerProxy#warn(Object,I18NMessage,Object...)}. */ void warn (Object category); /** * A convenience method for {@link * I18NLoggerProxy#info(Object,Throwable,I18NMessage,Object...)}. */ void info (Object category, Throwable throwable); /** * A convenience method for {@link * I18NLoggerProxy#info(Object,I18NMessage,Object...)}. */ void info (Object category); /** * A convenience method for {@link * I18NLoggerProxy#debug(Object,Throwable,I18NMessage,Object...)}. */ void debug (Object category, Throwable throwable); /** * A convenience method for {@link * I18NLoggerProxy#debug(Object,I18NMessage,Object...)}. */ void debug (Object category); /** * A convenience method for {@link * I18NLoggerProxy#trace(Object,Throwable,I18NMessage,Object...)}. */ void trace (Object category, Throwable throwable); /** * A convenience method for {@link * I18NLoggerProxy#trace(Object,I18NMessage,Object...)}. */ void trace (Object category); }