Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-velocity Wiki" 
for change notification.

The following page has been changed by ChristopherTownson:
http://wiki.apache.org/jakarta-velocity/ExtendedDateTool

------------------------------------------------------------------------------
- = ExtendedDateTool =
  == Initial Rough Version ==
  ExtendedDateTool handles requirements for expressing a specified date 
relative to now as a string in a "friendly format" (e.g. "3 minutes ago", 
"tomorrow", "3 days from now")
  
@@ -35, +34 @@

  /**
   * Extension to Velocity DateTool which provides methods for expressing
   * Calendar objects in a human-friendly, relative format
-  * 
+  *
   * @author <a href="mailto:[EMAIL PROTECTED]">Christopher Townson</a>
-  * 
+  *
   * TODO externalize unit conversion methods to dedicated tool?
   * TODO better handling of strings/pluralisation/i8n?
   * TODO integration of properties with velocity.properties
@@ -45, +44 @@

   *            is not suited to "friendly-format"
   */
  public class ExtendedDateTool extends DateTool
- {     
+ {
        /**
         * number of milliseconds in a second
         */
        public static final long MILLIS_TO_SECOND = 1000;
-       
+ 
        /**
         * number of millseconds in a minute
         */
        public static final long MILLIS_TO_MINUTE = 60000;
-       
+ 
        /**
         * number of milliseconds in an hour
         */
        public static final long MILLIS_TO_HOUR = 3600000;
-       
+ 
        /**
         * number of milliseconds in a day
         */
        public static final long MILLIS_TO_DAY = 86400000;
-       
+ 
        /**
         * String to append to dates which are _after_ the current date
         */
-       public static final String APPEND_FUTURE = 
+       public static final String APPEND_FUTURE =
                
Messages.getString("ExtendedDateTool.string.date.append.future");
-       
-       
+ 
+ 
        /**
         * String to append to dates which are _before_ the current date
         */
-       public static final String APPEND_PAST = 
+       public static final String APPEND_PAST =
                Messages.getString("ExtendedDateTool.string.date.append.past");
-       
+ 
        /**
         * Strings for unit: seconds (singular)
         */
-       public static final String UNIT_SECOND = 
+       public static final String UNIT_SECOND =
                
Messages.getString("ExtendedDateTool.string.unit.seconds.singular");
-       
+ 
        /**
         * String for unit seconds (plural)
         */
-       public static final String UNIT_SECONDS = 
+       public static final String UNIT_SECONDS =
                
Messages.getString("ExtendedDateTool.string.unit.seconds.plural");
-       
+ 
        /**
         * String for unit: minutes (singular)
         */
-       public static final String UNIT_MINUTE = 
+       public static final String UNIT_MINUTE =
                
Messages.getString("ExtendedDateTool.string.unit.minutes.singular");
-       
+ 
        /**
         * String for unit minutes (plural)
         */
-       public static final String UNIT_MINUTES = 
+       public static final String UNIT_MINUTES =
                
Messages.getString("ExtendedDateTool.string.unit.minutes.plural");
-       
+ 
        /**
         * String for unit: minutes (singular)
         */
-       public static final String UNIT_HOUR = 
+       public static final String UNIT_HOUR =
                
Messages.getString("ExtendedDateTool.string.unit.hours.singular");
-       
+ 
        /**
         * String for unit minutes (plural)
         */
-       public static final String UNIT_HOURS = 
+       public static final String UNIT_HOURS =
                Messages.getString("ExtendedDateTool.string.unit.hours.plural");
-       
+ 
        /**
         * String for unit: days (singular)
         */
-       public static final String UNIT_DAY = 
+       public static final String UNIT_DAY =
                
Messages.getString("ExtendedDateTool.string.unit.days.singular");
-       
+ 
        /**
         * String for unit days (plural)
         */
-       public static final String UNIT_DAYS = 
+       public static final String UNIT_DAYS =
                Messages.getString("ExtendedDateTool.string.unit.days.plural");
-       
+ 
        /**
         * String for unit: 1 day into the future
         */
-       public static final String YESTERDAY = 
+       public static final String YESTERDAY =
                Messages.getString("ExtendedDateTool.string.date.yesterday");
-       
+ 
        /**
         * String for unit: 1 day into the past
         */
-       public static final String TOMORROW = 
+       public static final String TOMORROW =
                Messages.getString("ExtendedDateTool.string.date.tomorrow");
-       
+ 
        /**
         * String for unit: weeks (singular)
-        * 
+        *
         * Not currently in use as any period over 7 days is better displayed 
in a
         * standard date format
         */
-       public static final String UNIT_WEEK = 
+       public static final String UNIT_WEEK =
                
Messages.getString("ExtendedDateTool.string.unit.weeks.singular");
-       
+ 
        /**
         * String for unit: weeks (plural)
-        * 
+        *
         * Currently only used to determine the fact that date should be
         * displayed in a standard format
         */
-       public static final String UNIT_WEEKS = 
+       public static final String UNIT_WEEKS =
                Messages.getString("ExtendedDateTool.string.unit.weeks.plural");
-       
+ 
        /**
         * Default output format for dates which are too distant to be suitable
         * for rendering in "friendly format"
         */
-       public static final String DEFAULT_FORMAT = 
+       public static final String DEFAULT_FORMAT =
                
Messages.getString("ExtendedDateTOol.string.date.format.default");
  
        /**
         * Returns a provided Date instance in a human-friendly String format
-        * 
+        *
         * @param then The Calendar object to convert to human-friendly format
         * @return The date in a human-friendly format (e.g. 3 days ago)
         */
@@ -174, +173 @@

        {
                String friendlyDate = null;
                String append = null;
-               
+ 
                // get the difference between the now and then as a long
                long diff = getDifferenceBetweenNowAnd(then);
-               
+ 
                // is Calendar in the past or the future?
                if (isPast(diff))
                {
@@ -188, +187 @@

                {
                        append = APPEND_FUTURE;
                }
-               
+ 
                if (isSeconds(diff))
                {
                        if (isSingular(diff))
                        {
-                               friendlyDate = convertMillisToSeconds(diff) + 
+                               friendlyDate = convertMillisToSeconds(diff) +
                                " " + UNIT_SECOND + " " + append;
                        }
                        else
                        {
-                               friendlyDate = convertMillisToSeconds(diff) + 
+                               friendlyDate = convertMillisToSeconds(diff) +
                                " " + UNIT_SECONDS + " " + append;
                        }
                }
@@ -206, +205 @@

                {
                        if (isSingular(diff))
                        {
-                               friendlyDate = convertMillisToMinutes(diff) + 
+                               friendlyDate = convertMillisToMinutes(diff) +
                                " " + UNIT_MINUTE + " " + append;
                        }
                        else
                        {
-                               friendlyDate = convertMillisToMinutes(diff) + 
+                               friendlyDate = convertMillisToMinutes(diff) +
                                " " + UNIT_MINUTES + " " + append;
                        }
                }
@@ -224, +223 @@

                        }
                        else
                        {
-                               friendlyDate = convertMillisToHours(diff) + 
+                               friendlyDate = convertMillisToHours(diff) +
                                " " + UNIT_HOURS + " " + append;
                        }
                }
@@ -240, +239 @@

                        }
                        else
                        {
-                               friendlyDate = convertMillisToDays(diff) + 
+                               friendlyDate = convertMillisToDays(diff) +
                                " " + UNIT_DAYS + " " + append;
                        }
                }
@@ -248, +247 @@

                {
                        friendlyDate = 
super.format(DEFAULT_FORMAT,then.getTime());
                }
-               
+ 
                // return friendly string
                return friendlyDate;
        }
-       
+ 
        /**
         * Overloaded getFriendlyDate method for convenience from templates
-        * 
+        *
         * NB. The date format descriptor only applies to the date as it will be
         * returned if it is <strong>not</strong> suitable for friendly format
-        * 
+        *
         * @param format
         * @param obj
         * @return The date in a human-friendly format (e.g. 3 days ago)
@@ -266, +265 @@

        public String getFriendlyDate(String format, Object obj) {
                return 
getFriendlyDate(super.toCalendar(super.toDate(format,obj)));
        }
-       
+ 
        /**
         * Returns a Java timestamp (milliseconds since 1970-01-01)
-        * 
+        *
         * @return long java timestamp for the current date
         */
        public long getTimeInMillis()
        {
                return Calendar.getInstance().getTimeInMillis();
        }
-       
+ 
        /**
         * Returns a Java timestamp for the supplied Calendar
-        * 
+        *
         * @param cal
         * @return long the Java timestamp for the supplied calendar
         */
@@ -287, +286 @@

        {
                return cal.getTimeInMillis();
        }
-       
+ 
        /**
         * Returns the time difference between two points expressed in 
milliseconds
-        * 
+        *
         * @param pointA
         * @param pointB
         * @return The time difference in milliseconds
@@ -299, +298 @@

        {
                return pointA.getTimeInMillis() - pointB.getTimeInMillis();
        }
-       
+ 
        /**
         * Tests whether the difference between two Calendar instances is
         * a matter of seconds or not
-        * 
+        *
         * @param then The calendar instance for comparison
         * @return The difference in milliseconds between now and supplied 
Calendar
         *          Returns a positive long if then is after now and a negative 
long
@@ -313, +312 @@

        {
                return getDifferenceBetween(then, Calendar.getInstance());
        }
-       
+ 
        /**
         * COnvert a duration expressed in milliseconds to seconds
-        * 
+        *
         * @param millis
         * @return milliseconds expressed as seconds
         */
@@ -324, +323 @@

        {
                return millis / MILLIS_TO_SECOND;
        }
-       
+ 
        /**
         * Convert a duration expressed in milliseconds to minutes
-        * 
+        *
         * @param millis
         * @return milliseconds expressed as minutes
         */
@@ -335, +334 @@

        {
                return millis / MILLIS_TO_MINUTE;
        }
-       
+ 
        /**
         * Convert a duration expressed in milliseconds to hours
-        * 
+        *
         * @param millis
         * @return milliseconds expressed as hours
         */
@@ -346, +345 @@

        {
                return millis / MILLIS_TO_HOUR;
        }
-       
+ 
        /**
         * Convert a duration expressed in milliseconds to days
-        * 
+        *
         * @param millis
         * @return milliseconds expressed as days
         */
@@ -357, +356 @@

        {
                return millis / MILLIS_TO_DAY;
        }
-       
+ 
        /**
         * Tests for positive or negative result from timestamp comparison
-        * 
+        *
         * @param diff
         * @return whether or not our compared time was in the past
         */
@@ -369, +368 @@

                if (diff < 0)
                {
                        return true;
-               }               
+               }
                else
                {
                        return false;
                }
        }
-       
+ 
        /**
         * Returns the appropriate time unit string for expressing a
         * millsecond duration in a "friendly" date format
-        * 
+        *
         * @param diff
         * @return The time unit name
         */
@@ -388, +387 @@

                if (diff > 0 && diff < 60000)
                {
                        return UNIT_SECONDS;
-               }               
+               }
                else if (diff >= 60000 && diff < 3600000)
                {
                        return UNIT_MINUTES;
-               }               
+               }
                else if (diff >= 3600000 && diff < 86400000)
                {
                        return UNIT_HOURS;
-               }               
+               }
                else if (diff >= 86400000 && diff < 604800000)
                {
                        return UNIT_DAYS;
-               }               
+               }
                else if (diff >= 604800000)
                {
                        return UNIT_WEEKS;
-               }               
+               }
                else
                {
                        // default
                        return null;
                }
        }
-       
+ 
        /**
         * Returns true if the time unit string is singular; false if the string
         * needs to be pluralised
-        * 
+        *
         * This method will only work on positive longs.
-        * 
+        *
         * @param diff
         * @return Whether or not to pluralise the time unit string
         */
@@ -425, +424 @@

        {
                // run this test now to save repeating in conditionals
                String units = calculateUnit(diff);
-               
+ 
                if (units == UNIT_SECONDS && diff < 2000)
                {
                        return true;
-               }               
+               }
                else if (units == UNIT_MINUTES && diff < 120000)
                {
                        return true;
-               }               
+               }
                else if (units == UNIT_HOURS && diff < 7200000)
                {
                        return true;
-               }               
+               }
                else if (units == UNIT_DAYS && diff < 172800000)
                {
                        return true;
@@ -452, +451 @@

                        return false;
                }
        }
-       
+ 
        /**
         * Do we want to talk in seconds?
-        *  
+        *
         * @param diff
         * @return Whether we are dealing with seconds or not
         */
@@ -470, +469 @@

                        return false;
                }
        }
-       
+ 
        /**
         * Do we want to talk in minutes?
-        * 
+        *
         * @param diff
         * @return Whether we are dealing with minutes or not
         */
@@ -488, +487 @@

                        return false;
                }
        }
-       
+ 
        /**
         * Do we want to talk in hours?
-        * 
+        *
         * @param diff
         * @return Whether we are dealing with hours or not
         */
@@ -506, +505 @@

                        return false;
                }
        }
-       
+ 
        /**
         * Do we want to talk in days?
-        * 
+        *
         * @param diff
         * @return Whether we are dealing with days or not
         */
@@ -524, +523 @@

                        return false;
                }
        }
-       
+ 
        /**
         * Do we want to talk in weeks?
-        * 
+        *
         * @param diff
         * @return Whether we are dealing with weeks or not
         */
@@ -550, +549 @@

  
  {{{
  /**
-  * 
+  *
   */
  package org.apache.velocity.tools.generic;
  
@@ -560, +559 @@

  /**
   * Eclipse auto-generated helper class to retrieve localised Strings
   * for ExtendedDateTool
-  * 
+  *
   * @author Christopher Townson
   */
  public class Messages {
@@ -584, +583 @@

  
        /**
         * Accessor method for retrieving String properties
-        * 
+        *
         * @param key The key for the String property to get
         * @return The string property
         */

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to