Class AbstractCustomFieldStatisticsMapper

java.lang.Object
com.atlassian.jira.issue.customfields.statistics.AbstractCustomFieldStatisticsMapper
All Implemented Interfaces:
LuceneFieldSorter, StatisticsMapper, FieldValueLoader
Direct Known Subclasses:
ProjectSelectStatisticsMapper, UserPickerStatisticsMapper

@PublicSpi public abstract class AbstractCustomFieldStatisticsMapper extends Object implements StatisticsMapper
  • Field Details

    • customField

      protected final CustomField customField
  • Constructor Details

    • AbstractCustomFieldStatisticsMapper

      public AbstractCustomFieldStatisticsMapper(CustomField customField)
  • Method Details

    • getDocumentConstant

      public String getDocumentConstant()
      Description copied from interface: LuceneFieldSorter
      Get the field name that this field is indexed with.
      Specified by:
      getDocumentConstant in interface LuceneFieldSorter
      See Also:
    • isValidValue

      public boolean isValidValue(Object 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
      Parameters:
      value - This is the same value that will be returned from LuceneFieldSorter.getValueFromLuceneField(String)
      Returns:
      true if this value is valid for this particular search
    • getSearchUrlSuffix

      public SearchRequest getSearchUrlSuffix(Object value, SearchRequest searchRequest)
      Description copied from interface: StatisticsMapper
      Get a suffix for the issue navigator, which allows for filtering on this value.

      eg. 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
      Parameters:
      value - This is the same value that will be returned from LuceneFieldSorter.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:
    • getSearchContextFromValue

      protected SearchContext getSearchContextFromValue(Object value)
    • getSearchValue

      protected abstract String getSearchValue(Object value)
      String value to be passed to the search request to construct a new request URL
      Parameters:
      value - returned from LuceneFieldSorter.getValueFromLuceneField(java.lang.String)
      Returns:
      String
    • getComparator

      public Comparator getComparator()
      Description copied from interface: LuceneFieldSorter
      A comparator that can be used to order objects returned by LuceneFieldSorter.getValueFromLuceneField(String).

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

      Specified by:
      getComparator in interface FieldValueLoader
      Specified by:
      getComparator in interface LuceneFieldSorter
    • 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
      Returns:
      true if this mapper will always be part of an issues data
    • equals

      public boolean equals(Object o)
      Description copied from interface: LuceneFieldSorter
      As this object is used as a key in a cache, this method must be provided and respect all internal state.

      See the class javadoc entry for more details.

      Specified by:
      equals in interface LuceneFieldSorter
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Description copied from interface: LuceneFieldSorter
      As this object is used as a key in a cache, this method must be provided and respect all internal state.

      See the class javadoc entry for more details.

      Specified by:
      hashCode in interface LuceneFieldSorter
      Overrides:
      hashCode in class Object