[
https://issues.apache.org/jira/browse/VELTOOLS-109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12649557#action_12649557
]
Ezra Epstein commented on VELTOOLS-109:
---------------------------------------
One more time with feeling... it ain't so fast, but it's Thread Safe ...
import java.util.List;
import java.util.Formatter;
public class PrintfTool extends org.apache.velocity.tools.generic.LocaleConfig {
// Velocity doesn't support invoking with varargs
private String printf(String format, Object... args) {
StringBuffer sb = new StringBuffer();
Formatter formatter = new Formatter(sb, getLocale());
formatter.format(format, args);
formatter.flush();
return sb.toString();
}
// Velocity does support invoking with a List of values.
public String printf(String format, List args) {
return printf(format, args.toArray());
}
// Since value convenience method
public String printf(String format, Object arg) {
return printf(format, new Object[] { arg });
}
}
> A PrinftTool comes in handy. I've one I wish to donate
> -------------------------------------------------------
>
> Key: VELTOOLS-109
> URL: https://issues.apache.org/jira/browse/VELTOOLS-109
> Project: Velocity Tools
> Issue Type: Improvement
> Components: GenericTools
> Affects Versions: 1.4, 2.0
> Environment: JDK 1.5, 6
> Reporter: Ezra Epstein
> Priority: Minor
> Fix For: 1.4, 2.0
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> import java.io.ByteArrayOutputStream;
> import java.io.PrintStream;
> import java.io.PrintWriter;
> import java.io.StringWriter;
> import java.util.List;
> public class PrintfTool extends
> org.apache.velocity.tools.generic.LocaleConfig {
> StringWriter output;
> PrintWriter printer;
> public PrintfTool() {
> output = new StringWriter();
> printer = new PrintWriter(output);
> }
> // Velocity doesn't support invoking with varargs
> private String printf(String format, Object... args) {
> printer.printf(format, args);
> printer.flush();
> output.flush();
> String result = output.toString();
> output.getBuffer().setLength(0);
> return result;
> }
> // Velocity does support invoking with a List of values.
> public String printf(String format, List args) {
> return printf(format, args.toArray());
> }
> // Since value convenience method
> public String printf(String format, Object arg) {
> return printf(format, new Object[] { arg });
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]