@Override public void formatTo(final StringBuilder buffer) { if (formattedMessage != null) { buffer.append(formattedMessage); } else { if (indices[0] < 0) { ParameterFormatter.formatMessage(buffer, messagePattern, argArray, usedCount); } else { ParameterFormatter.formatMessage2(buffer, messagePattern, argArray, usedCount, indices); } } }
/** * Replace placeholders in the given messagePattern with arguments. * * @param messagePattern the message pattern containing placeholders. * @param arguments the arguments to be used to replace placeholders. * @return the formatted message. */ static String format(final String messagePattern, final Object[] arguments) { final StringBuilder result = new StringBuilder(); final int argCount = arguments == null ? 0 : arguments.length; formatMessage(result, messagePattern, arguments, argCount); return result.toString(); }
@Override public void formatTo(final StringBuilder builder) { if (indices[0] < 0) { ParameterFormatter.formatMessage(builder, messagePattern, getParams(), argCount); } else { ParameterFormatter.formatMessage2(builder, messagePattern, getParams(), usedCount, indices); } }
@Test public void testFormatMessageStringArgsWithEscapedEscape() { final String testMsg = "Test message \\\\{}{} {}"; final String[] args = { "a", "b", "c" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 3); final String result = sb.toString(); assertEquals("Test message \\ab c", result); }
@Override public void formatTo(final StringBuilder buffer) { if (formattedMessage != null) { buffer.append(formattedMessage); } else { if (indices[0] < 0) { ParameterFormatter.formatMessage(buffer, messagePattern, argArray, usedCount); } else { ParameterFormatter.formatMessage2(buffer, messagePattern, argArray, usedCount, indices); } } }
@Test public void testFormatMessageStringArgsWithTrailingEscapedEscape() { final String testMsg = "Test message {}{} {}\\\\"; final String[] args = { "a", "b", "c" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 3); final String result = sb.toString(); assertEquals("Test message ab c\\\\", result); }
@Override public void formatTo(final StringBuilder builder) { if (indices[0] < 0) { ParameterFormatter.formatMessage(builder, messagePattern, getParams(), argCount); } else { ParameterFormatter.formatMessage2(builder, messagePattern, getParams(), usedCount, indices); } }
@Test public void testFormatMessage3StringArgs() { final String testMsg = "Test message {}{} {}"; final String[] args = { "a", "b", "c" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 3); final String result = sb.toString(); assertEquals("Test message ab c", result); }
@Test public void testFormatMessageNullArgs() { final String testMsg = "Test message {} {} {} {} {} {}"; final String[] args = { "a", null, "c", null, null, null }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 6); final String result = sb.toString(); assertEquals("Test message a null c null null null", result); }
@Test public void testFormatMessageStringArgsIgnoresSuperfluousArgs() { final String testMsg = "Test message {}{} {}"; final String[] args = { "a", "b", "c", "unnecessary", "superfluous" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 5); final String result = sb.toString(); assertEquals("Test message ab c", result); }
@Test public void testFormatMessageStringArgsWithEscape() { final String testMsg = "Test message \\{}{} {}"; final String[] args = { "a", "b", "c" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 3); final String result = sb.toString(); assertEquals("Test message {}a b", result); }
@Test public void testFormatMessageStringArgsWithTrailingEscape() { final String testMsg = "Test message {}{} {}\\"; final String[] args = { "a", "b", "c" }; final StringBuilder sb = new StringBuilder(); ParameterFormatter.formatMessage(sb, testMsg, args, 3); final String result = sb.toString(); assertEquals("Test message ab c\\", result); }
/** * Replace placeholders in the given messagePattern with arguments. * * @param messagePattern the message pattern containing placeholders. * @param arguments the arguments to be used to replace placeholders. * @return the formatted message. */ static String format(final String messagePattern, final Object[] arguments) { final StringBuilder result = new StringBuilder(); final int argCount = arguments == null ? 0 : arguments.length; formatMessage(result, messagePattern, arguments, argCount); return result.toString(); }