Class DatePeriodStatisticsMapper

java.lang.Object
com.atlassian.jira.issue.statistics.DatePeriodStatisticsMapper
All Implemented Interfaces:
SearchRequestAppender.Factory<org.jfree.data.time.TimePeriod>, StatisticsMapper<org.jfree.data.time.TimePeriod>, FieldValueLoader<org.jfree.data.time.TimePeriod>

public class DatePeriodStatisticsMapper extends Object implements StatisticsMapper<org.jfree.data.time.TimePeriod>, SearchRequestAppender.Factory<org.jfree.data.time.TimePeriod>
A StatsMapper that takes the document constant name (lucene) and a JFreeChart TimePeriod class, and rounds the dates to the appropriate time period
See Also:
  • TimePeriod
  • Constructor Details

    • DatePeriodStatisticsMapper

      public DatePeriodStatisticsMapper(Class timePeriodClass, String documentConstant, TimeZone periodTimeZone)
      Creates a new DatePeriodStatisticsMapper using the given time zone.
  • Method Details

    • getSearchUrlSuffix

      @Deprecated public SearchRequest getSearchUrlSuffix(org.jfree.data.time.TimePeriod timePeriod, SearchRequest searchRequest)
      Deprecated.
      Use #getSearchRequestAppender().appendInclusiveSingleValueClause()
      Description copied from interface: StatisticsMapper
      Get a suffix for the issue navigator, which allows for filtering on this value.

      e.g. a project field would return a SearchRequest object who's getQueryString method will produce pid=10240

      Note that values returned from implementations should return values that are URLEncoded.

      Specified by:
      getSearchUrlSuffix in interface StatisticsMapper<org.jfree.data.time.TimePeriod>
      Parameters:
      timePeriod - This is the same value that will be returned from
      invalid reference
      #getValueFromLuceneField(String)
      searchRequest - is the search request that should be used as the base of the newly generated SearchRequest object. If this parameter is null then the return type will also be null.
      Returns:
      a SearchRequest object that will generate the correct issue navigator url to search the correct statistics set, null otherwise.
      See Also:
    • getSearchRequestAppender

      public SearchRequestAppender<org.jfree.data.time.TimePeriod> getSearchRequestAppender()
      Specified by:
      getSearchRequestAppender in interface SearchRequestAppender.Factory<org.jfree.data.time.TimePeriod>
      Since:
      v6.0
    • field

      public String field()
      Description copied from interface: FieldValueLoader
      Get the field name that this field is indexed with.
      Specified by:
      field in interface FieldValueLoader<org.jfree.data.time.TimePeriod>
    • loadValue

      public org.jfree.data.time.TimePeriod loadValue(String documentValue)
      Description copied from interface: FieldValueLoader
      Convert the document field back to the object that you wish to use to display it.

      e.g. '1000' -> Version 1.

      For custom fields, the return value will be passed to CustomFieldSearcherModuleDescriptor.getStatHtml(com.atlassian.jira.issue.fields.CustomField, Object, String)

      Specified by:
      loadValue in interface FieldValueLoader<org.jfree.data.time.TimePeriod>
      Parameters:
      documentValue - The value of the field in the index or null if no values exist
      Returns:
      The value that will be passed to the display
    • getComparator

      public Comparator<org.jfree.data.time.TimePeriod> getComparator()
      Description copied from interface: FieldValueLoader
      A comparator by which the resulting values should be ordered when multiple values are present.

      The Comparator must be reentrant as it could be used by Lucene from multiple threads at once.

      Specified by:
      getComparator in interface FieldValueLoader<org.jfree.data.time.TimePeriod>
    • isValidValue

      public boolean isValidValue(org.jfree.data.time.TimePeriod value)
      Description copied from interface: StatisticsMapper
      Check whether this value is valid for this particular search. This is useful if you do not wish to display all the values that are indexed (eg - only show released versions)
      Specified by:
      isValidValue in interface StatisticsMapper<org.jfree.data.time.TimePeriod>
      Parameters:
      value - This is the same value that will be returned from
      invalid reference
      #getValueFromLuceneField(String)
      Returns:
      true if this value is valid for this particular search
    • isFieldAlwaysPartOfAnIssue

      public boolean isFieldAlwaysPartOfAnIssue()
      Description copied from interface: StatisticsMapper
      Check if the field is always part of an issues' data. This should only return false in the case of a custom field where the value does not have to be set for each issue.
      Specified by:
      isFieldAlwaysPartOfAnIssue in interface StatisticsMapper<org.jfree.data.time.TimePeriod>
      Returns:
      true if this mapper will always be part of an issues data