com.atlassian.jira.util
Class JiraDurationUtils

java.lang.Object
  extended by com.atlassian.jira.util.JiraDurationUtils

public class JiraDurationUtils
extends Object

Util class reponsible for printing durations in various formats.

Note that this class uses the Duration formatting as configured for time-tracking and is therefore quite specific. For more generic duration formatting see DateUtils


Nested Class Summary
static class JiraDurationUtils.DaysDurationFormatter
          This formatter formats time duration to days only.
static interface JiraDurationUtils.DurationFormatter
          This interface defines methods for formatting time duration
static class JiraDurationUtils.HoursDurationFormatter
          This formatter formats time duration to hours only.
static class JiraDurationUtils.PrettyDurationFormatter
          This formatter formats time duration to "pretty" format, such as 3 weeks, 2 days, 1 hour, 15 minutes.
 
Field Summary
static String FORMAT_DAYS
          days formatter application property value
static String FORMAT_HOURS
          hours formatter application property value
static String FORMAT_PRETTY
          pretty formatter aplication property value
protected  JiraDurationUtils.DurationFormatter formatter
          duration formatter currently in use
 
Constructor Summary
JiraDurationUtils(ApplicationProperties applicationProperties, JiraAuthenticationContext authenticationContext, TimeTrackingConfiguration timeTrackingConfiguration)
          Sets the duration formatter based on the settings in the application properties and authentication context
 
Method Summary
 String getFormattedDuration(Long duration)
          Formats time duration with default (system) locale
 String getFormattedDuration(Long duration, Locale locale)
          Formats time duration with given locale
 String getI18nKey()
          Returns i18n resource key for the current formatter
 String getShortFormattedDuration(Long duration)
          Formats time duration in the most compact way possible.
 String getShortFormattedDurationNoFractions(Long duration)
          Formats time duration in the most compact way possible without using fractions.
 Long parseDuration(String duration)
          Turn a duration string into the number of seconds that it represents, taking into account JIRA's configuration (i.e.
 void updateFormatters(ApplicationProperties applicationProperties, JiraAuthenticationContext authenticationContext)
          Sets the duration formatter with a new instance of a particular formatter chosen based on the settings in the application properties and authentication context
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FORMAT_PRETTY

public static final String FORMAT_PRETTY
pretty formatter aplication property value

See Also:
Constant Field Values

FORMAT_HOURS

public static final String FORMAT_HOURS
hours formatter application property value

See Also:
Constant Field Values

FORMAT_DAYS

public static final String FORMAT_DAYS
days formatter application property value

See Also:
Constant Field Values

formatter

protected JiraDurationUtils.DurationFormatter formatter
duration formatter currently in use

Constructor Detail

JiraDurationUtils

public JiraDurationUtils(ApplicationProperties applicationProperties,
                         JiraAuthenticationContext authenticationContext,
                         TimeTrackingConfiguration timeTrackingConfiguration)
Sets the duration formatter based on the settings in the application properties and authentication context

Parameters:
applicationProperties - application properties
authenticationContext -
timeTrackingConfiguration -
Method Detail

updateFormatters

public void updateFormatters(ApplicationProperties applicationProperties,
                             JiraAuthenticationContext authenticationContext)
Sets the duration formatter with a new instance of a particular formatter chosen based on the settings in the application properties and authentication context

Parameters:
applicationProperties - application properties
authenticationContext - authentication context

getI18nKey

public String getI18nKey()
Returns i18n resource key for the current formatter

Returns:
i18n resource key

getFormattedDuration

public String getFormattedDuration(Long duration)
Formats time duration with default (system) locale

Parameters:
duration - time duration to format
Returns:
formatted time duration

getFormattedDuration

public String getFormattedDuration(Long duration,
                                   Locale locale)
Formats time duration with given locale

Parameters:
duration - time duration to format
locale - user's locale
Returns:
formatted time duration

getShortFormattedDuration

public String getShortFormattedDuration(Long duration)
Formats time duration in the most compact way possible.

Parameters:
duration - time duration to format
Returns:
formatted time duration

parseDuration

public Long parseDuration(String duration)
                   throws com.atlassian.core.util.InvalidDurationException
Turn a duration string into the number of seconds that it represents, taking into account JIRA's configuration (i.e. how many hours are in a day, how many days are in a week, etc)

Parameters:
duration - string in JIRA's duration format (i.e. "20h")
Returns:
number of seconds in the duration string
Throws:
com.atlassian.core.util.InvalidDurationException

getShortFormattedDurationNoFractions

public String getShortFormattedDurationNoFractions(Long duration)
Formats time duration in the most compact way possible without using fractions. Once JRA-12943 is fixed we can get rid of this and display fractions.

Parameters:
duration - time in seconds
Returns:
formatted time duration


Copyright © 2002-2009 Atlassian. All Rights Reserved.