@@ -55,8 +55,8 @@
package org.apache.tools.ant;
package org.apache.tools.ant;
import java.io.PrintStream;
import java.io.PrintStream;
import java.text.ChoiceFormat;
import java.text.MessageFormat;
import org.apache.tools.ant.util.StringUtils;
import org.apache.tools.ant.util.StringUtils;
@@ -66,6 +66,28 @@ import org.apache.tools.ant.util.StringUtils;
* any messages that get logged.
* any messages that get logged.
*/
*/
public class DefaultLogger implements BuildLogger {
public class DefaultLogger implements BuildLogger {
private final static MessageFormat MINUTE_SECONDS =
new MessageFormat("Total time: {0}{1}.");
private final static double[] LIMITS = {0, 1, 2};
private final static String[] MINUTES_PART =
{"", "1 minute, ", "{0,number} minutes, "};
private final static String[] SECONDS_PART =
{"no seconds", "1 second", "{1,number} seconds"};
private final static ChoiceFormat MINUTES_FORMAT =
new ChoiceFormat(LIMITS, MINUTES_PART);
private final static ChoiceFormat SECONDS_FORMAT =
new ChoiceFormat(LIMITS, SECONDS_PART);
static {
MINUTE_SECONDS.setFormat(0, MINUTES_FORMAT);
MINUTE_SECONDS.setFormat(1, SECONDS_FORMAT);
}
private static int LEFT_COLUMN_SIZE = 12;
private static int LEFT_COLUMN_SIZE = 12;
protected PrintStream out;
protected PrintStream out;
@@ -159,8 +181,7 @@ public class DefaultLogger implements BuildLogger {
}
}
}
}
message.append(StringUtils.LINE_SEP);
message.append(StringUtils.LINE_SEP);
message.append("Total time: "
+ formatTime(System.currentTimeMillis() - startTime));
message.append(formatTime(System.currentTimeMillis() - startTime));
String msg = message.toString();
String msg = message.toString();
if (error == null) {
if (error == null) {
@@ -219,18 +240,12 @@ public class DefaultLogger implements BuildLogger {
long seconds = millis / 1000;
long seconds = millis / 1000;
long minutes = seconds / 60;
long minutes = seconds / 60;
Object[] args = {
new Long(minutes),
new Long(seconds % 60)
};
if (minutes > 0) {
return Long.toString(minutes) + " minute"
+ (minutes == 1 ? " " : "s ")
+ Long.toString(seconds%60) + " second"
+ (seconds%60 > 1 ? "s" : "");
}
else {
return Long.toString(seconds) + " second"
+ (seconds%60 > 1 ? "s" : "");
}
return MINUTE_SECONDS.format(args);
}
}
protected void printMessage(final String message,
protected void printMessage(final String message,