From 52f94cbb4ce1f66344062c083fcd50991e7be5bd Mon Sep 17 00:00:00 2001 From: Magesh Umasankar Date: Thu, 31 Jan 2002 23:56:26 +0000 Subject: [PATCH] Qualify total time spent on build with proper English. PR: 5901 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271027 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/DefaultLogger.java | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/src/main/org/apache/tools/ant/DefaultLogger.java b/src/main/org/apache/tools/ant/DefaultLogger.java index 5fbe34cb6..88ba60f41 100644 --- a/src/main/org/apache/tools/ant/DefaultLogger.java +++ b/src/main/org/apache/tools/ant/DefaultLogger.java @@ -55,8 +55,8 @@ package org.apache.tools.ant; import java.io.PrintStream; - - +import java.text.ChoiceFormat; +import java.text.MessageFormat; import org.apache.tools.ant.util.StringUtils; @@ -66,6 +66,28 @@ import org.apache.tools.ant.util.StringUtils; * any messages that get logged. */ 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; protected PrintStream out; @@ -159,8 +181,7 @@ public class DefaultLogger implements BuildLogger { } } message.append(StringUtils.LINE_SEP); - message.append("Total time: " - + formatTime(System.currentTimeMillis() - startTime)); + message.append(formatTime(System.currentTimeMillis() - startTime)); String msg = message.toString(); if (error == null) { @@ -219,18 +240,12 @@ public class DefaultLogger implements BuildLogger { long seconds = millis / 1000; 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,