com.atlassian.greenhopper.customfield.rank
Class RankSearcher

java.lang.Object
  extended by com.atlassian.jira.issue.customfields.searchers.AbstractInitializationCustomFieldSearcher
      extended by com.atlassian.greenhopper.customfield.rank.RankSearcher
All Implemented Interfaces:
com.atlassian.jira.issue.customfields.CustomFieldSearcher, com.atlassian.jira.issue.customfields.SortableCustomFieldSearcher, com.atlassian.jira.issue.search.searchers.IssueSearcher<com.atlassian.jira.issue.fields.CustomField>

public class RankSearcher
extends com.atlassian.jira.issue.customfields.searchers.AbstractInitializationCustomFieldSearcher
implements com.atlassian.jira.issue.customfields.CustomFieldSearcher, com.atlassian.jira.issue.customfields.SortableCustomFieldSearcher

This is a copy of ExactNumberCustomFieldSearcher, with the modification of providing a no-op FieldIndexer (keeping values out of Lucene) and a custom sorter which calls back to the memory index. The only JQL operation we support is sorting by rank. Relational operators won't work because lucene can't actually query the values (on account of them not being in the index). If that's required, we'll need to provide a function for that.


Field Summary
 
Fields inherited from interface com.atlassian.jira.issue.search.searchers.IssueSearcher
log
 
Constructor Summary
RankSearcher(com.atlassian.jira.web.FieldVisibilityManager fieldVisibilityManager, com.atlassian.jira.jql.operand.JqlOperandResolver jqlOperandResolver, com.atlassian.jira.issue.customfields.converters.DoubleConverter doubleConverter, com.atlassian.jira.issue.customfields.searchers.transformer.CustomFieldInputHelper customFieldInputHelper, com.atlassian.jira.util.I18nHelper.BeanFactory i18nFactory)
           
 
Method Summary
 com.atlassian.jira.issue.customfields.searchers.CustomFieldSearcherClauseHandler getCustomFieldSearcherClauseHandler()
           
 com.atlassian.jira.issue.search.searchers.information.SearcherInformation<com.atlassian.jira.issue.fields.CustomField> getSearchInformation()
           
 com.atlassian.jira.issue.search.searchers.transformer.SearchInputTransformer getSearchInputTransformer()
           
 com.atlassian.jira.issue.search.searchers.renderer.SearchRenderer getSearchRenderer()
           
 com.atlassian.jira.issue.search.LuceneFieldSorter getSorter(com.atlassian.jira.issue.fields.CustomField customField)
          Create a new LuceneFieldSorter that bridges over to the rank index for the actual comparison.
 void init(com.atlassian.jira.issue.fields.CustomField field)
          This is the first time the searcher knows what its ID and names are
 
Methods inherited from class com.atlassian.jira.issue.customfields.searchers.AbstractInitializationCustomFieldSearcher
getDescriptor, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.jira.issue.customfields.CustomFieldSearcher
getDescriptor, init
 

Constructor Detail

RankSearcher

public RankSearcher(com.atlassian.jira.web.FieldVisibilityManager fieldVisibilityManager,
                    com.atlassian.jira.jql.operand.JqlOperandResolver jqlOperandResolver,
                    com.atlassian.jira.issue.customfields.converters.DoubleConverter doubleConverter,
                    com.atlassian.jira.issue.customfields.searchers.transformer.CustomFieldInputHelper customFieldInputHelper,
                    com.atlassian.jira.util.I18nHelper.BeanFactory i18nFactory)
Method Detail

init

public void init(com.atlassian.jira.issue.fields.CustomField field)
This is the first time the searcher knows what its ID and names are

Specified by:
init in interface com.atlassian.jira.issue.search.searchers.IssueSearcher<com.atlassian.jira.issue.fields.CustomField>
Parameters:
field - the Custom Field for this searcher

getSearchInformation

public com.atlassian.jira.issue.search.searchers.information.SearcherInformation<com.atlassian.jira.issue.fields.CustomField> getSearchInformation()
Specified by:
getSearchInformation in interface com.atlassian.jira.issue.search.searchers.IssueSearcher<com.atlassian.jira.issue.fields.CustomField>

getSearchInputTransformer

public com.atlassian.jira.issue.search.searchers.transformer.SearchInputTransformer getSearchInputTransformer()
Specified by:
getSearchInputTransformer in interface com.atlassian.jira.issue.search.searchers.IssueSearcher<com.atlassian.jira.issue.fields.CustomField>

getSearchRenderer

public com.atlassian.jira.issue.search.searchers.renderer.SearchRenderer getSearchRenderer()
Specified by:
getSearchRenderer in interface com.atlassian.jira.issue.search.searchers.IssueSearcher<com.atlassian.jira.issue.fields.CustomField>

getCustomFieldSearcherClauseHandler

public com.atlassian.jira.issue.customfields.searchers.CustomFieldSearcherClauseHandler getCustomFieldSearcherClauseHandler()
Specified by:
getCustomFieldSearcherClauseHandler in interface com.atlassian.jira.issue.customfields.CustomFieldSearcher

getSorter

public com.atlassian.jira.issue.search.LuceneFieldSorter getSorter(com.atlassian.jira.issue.fields.CustomField customField)
Create a new LuceneFieldSorter that bridges over to the rank index for the actual comparison. Pattern of creating a new instance here taken over from existing Searchers (they might be doing that for a reason).

Specified by:
getSorter in interface com.atlassian.jira.issue.customfields.SortableCustomFieldSearcher


Copyright © 2007-2012 Atlassian. All Rights Reserved.