in src/main/java/org/apache/sling/api/request/builder/impl/FastMessageFormat.java [66:103]
public String format(String pattern, Object... arguments) {
if (arguments == null || arguments.length == 0) {
return pattern;
} else {
if (pattern.indexOf('\'') != -1) {
// Escaping is not supported, fall back
return MessageFormat.format(pattern, arguments);
} else {
StringBuilder message = new StringBuilder();
int previousEnd = 0;
for (int i = 0; i < arguments.length; i++) {
String placeholder = '{' + String.valueOf(i);
int placeholderIndex = pattern.indexOf(placeholder);
// -1 or before previous placeholder || format element with type/style
if (placeholderIndex < previousEnd
|| pattern.charAt(placeholderIndex + placeholder.length()) != '}') {
// Type, style and random order are not supported, fall back
return MessageFormat.format(pattern, arguments);
} else {
// Format argument if necessary
Object argument = arguments[i];
if (argument instanceof Number) {
argument = getNumberFormat().format(argument);
} else if (argument instanceof Date) {
argument = getDateFormat().format(argument);
}
// Append previous part of the string and formatted argument
message.append(pattern.substring(previousEnd, placeholderIndex));
message.append(argument);
previousEnd = placeholderIndex + placeholder.length() + 1;
}
}
message.append(pattern.substring(previousEnd, pattern.length()));
return message.toString();
}
}
}