com.atlassian.jira.issue.customfields.searchers
Class AbstractCustomFieldSearcher

java.lang.Object
  extended bycom.atlassian.jira.issue.customfields.searchers.BaseCustomFieldSearcher
      extended bycom.atlassian.jira.issue.customfields.searchers.AbstractCustomFieldSearcher
All Implemented Interfaces:
Comparable, CustomFieldSearcher, Field, IssueSearcher
Direct Known Subclasses:
AbstractMultiCustomFieldSearcher, AbstractSingleValueSearcher, CascadingSelectSearcher, MultiSelectSearcher, NumberRangeSearcher

public abstract class AbstractCustomFieldSearcher
extends BaseCustomFieldSearcher

This class was the preferred extension point for CustomFieldSearcher in JIRA 3.0 - 3.2. Since 3.3 this class is maintained only for backwards compatibility with all legacy searchers. All older searchers should still work but any new searchers should extend BaseCustomFieldSearcher instead.

Since:
JIRA 3.0

Field Summary
 
Fields inherited from class com.atlassian.jira.issue.customfields.searchers.BaseCustomFieldSearcher
authenticationContext, customField, descriptor, log
 
Fields inherited from interface com.atlassian.jira.issue.search.searchers.IssueSearcher
I18N_BUNDLE
 
Constructor Summary
AbstractCustomFieldSearcher(FieldVisibilityBean fieldVisibilityBean)
           
 
Method Summary
 String getEditHtml(SearchContext searchContext, FieldValuesHolder fieldValuesHolder, Map displayParameters, webwork.action.Action action)
           
protected  I18nHelper getI18n()
           
abstract  CustomFieldParams getParamsFromSearchRequest(CustomField customField, SearchRequest searchRequest)
           
abstract  String getQuerySnippet(CustomField customField, SearchRequest searchRequest)
          Returns a query string that can be interpreted by the IssueNavigator action to execute this as a search request.
 String getQuerySnippet(SearchRequest searchRequest)
          Returns a JiraUrlCodec.encode(String) encoded string representing the relevent SearchParameter in the searchRequest.
 List getRelatedIndexers()
          Returns a list of FieldIndexer objects.
 String getViewHtml(SearchContext searchContext, FieldValuesHolder fieldValuesHolder, Map displayParameters, webwork.action.Action action)
           
abstract  void index(org.apache.lucene.document.Document doc, CustomField field, Object value)
          Add index to the given Document object.
 boolean isExistsInSeachRequest(CustomField customField, SearchRequest searchRequest)
           
 boolean isRevelentForSeachRequest(SearchRequest searchRequest)
          Checks if the searchRequest object has SearchParameter objects that was created by the searcher
abstract  List makeSearchParameters(CustomField field, CustomFieldParams params)
           
 void populateFromParams(CustomField customField, FieldValuesHolder fieldValuesHolder, ActionParams actionParams)
           
 void populateFromParams(FieldValuesHolder fieldValuesHolder, ActionParams actionParams)
          Populate FieldValuesHolder object with whatever values the searcher is interested in from the ActionParams
 void populateFromSearchRequest(FieldValuesHolder fieldValuesHolder, SearchRequest searchRequest)
          Populate FieldValuesHolder from the SearchRequest object.
 void populateSearchRequest(SearchRequest searchRequest, FieldValuesHolder fieldValuesHolder)
          Populate the SearchRequest with SearchParameter objects from the FieldValuesHolder
 void validateParams(CustomField customField, SearchContext searchContext, FieldValuesHolder fieldValuesHolder, I18nHelper i18nHelper, ErrorCollection errors)
           
 void validateParams(SearchContext searchContext, FieldValuesHolder fieldValuesHolder, I18nHelper i18nHelper, ErrorCollection errors)
          Adds error meessages to the errors object if values in the fieldValuesHolder fails validation.
 
Methods inherited from class com.atlassian.jira.issue.customfields.searchers.BaseCustomFieldSearcher
compareTo, getDescriptor, getId, getName, getNameKey, getStringValue, getValue, init, init, isShown, register
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractCustomFieldSearcher

public AbstractCustomFieldSearcher(FieldVisibilityBean fieldVisibilityBean)
Method Detail

getRelatedIndexers

public List getRelatedIndexers()
Description copied from interface: IssueSearcher
Returns a list of FieldIndexer objects. The objects should be initialised and ready for action

Returns:
List of FieldIndexer objects. Must not be null. Return Collections.EMPTY_LIST if not available

validateParams

public void validateParams(SearchContext searchContext,
                           FieldValuesHolder fieldValuesHolder,
                           I18nHelper i18nHelper,
                           ErrorCollection errors)
Description copied from interface: IssueSearcher
Adds error meessages to the errors object if values in the fieldValuesHolder fails validation.

Parameters:
searchContext - the context of the search (i.e. projects and issue types selected)
fieldValuesHolder - contains values populated by the searchers
i18nHelper -
errors -

populateFromParams

public void populateFromParams(FieldValuesHolder fieldValuesHolder,
                               ActionParams actionParams)
Description copied from interface: IssueSearcher
Populate FieldValuesHolder object with whatever values the searcher is interested in from the ActionParams

Parameters:
fieldValuesHolder - contains values populated by the searchers
actionParams - params from the webwork front end

populateFromSearchRequest

public void populateFromSearchRequest(FieldValuesHolder fieldValuesHolder,
                                      SearchRequest searchRequest)
Description copied from interface: IssueSearcher
Populate FieldValuesHolder from the SearchRequest object. Which SearchParameter really to take from the SR should match with the method IssueSearcher.populateSearchRequest(SearchRequest, FieldValuesHolder)

Parameters:
fieldValuesHolder - contains values populated by the searchers
searchRequest - relevent search request
See Also:
IssueSearcher.populateSearchRequest(SearchRequest, FieldValuesHolder)

populateSearchRequest

public void populateSearchRequest(SearchRequest searchRequest,
                                  FieldValuesHolder fieldValuesHolder)
Description copied from interface: IssueSearcher
Populate the SearchRequest with SearchParameter objects from the FieldValuesHolder

Parameters:
searchRequest - relevent search request
fieldValuesHolder - contains values populated by the searchers

isRevelentForSeachRequest

public boolean isRevelentForSeachRequest(SearchRequest searchRequest)
Description copied from interface: IssueSearcher
Checks if the searchRequest object has SearchParameter objects that was created by the searcher

Parameters:
searchRequest - relevent search request
Returns:
true if the searchRequest has relevent parameters to the searchers

getEditHtml

public String getEditHtml(SearchContext searchContext,
                          FieldValuesHolder fieldValuesHolder,
                          Map displayParameters,
                          webwork.action.Action action)

getViewHtml

public String getViewHtml(SearchContext searchContext,
                          FieldValuesHolder fieldValuesHolder,
                          Map displayParameters,
                          webwork.action.Action action)

getQuerySnippet

public String getQuerySnippet(SearchRequest searchRequest)
Description copied from interface: IssueSearcher
Returns a JiraUrlCodec.encode(String) encoded string representing the relevent SearchParameter in the searchRequest. The queryString should be able to be converted back to the original SearchRequest. i.e. getQuerySnippet -> String -> populateFromParams -> FieldValuesHolder -> populateSearchRequest -> SearchRequest -> getQuerySnippet should return the same original string.

Parameters:
searchRequest - relevent search request
Returns:
JiraUrlCodec.encode(String) encoded string representing the relevent SearchParameter in the searchRequest

getI18n

protected I18nHelper getI18n()

validateParams

public void validateParams(CustomField customField,
                           SearchContext searchContext,
                           FieldValuesHolder fieldValuesHolder,
                           I18nHelper i18nHelper,
                           ErrorCollection errors)

isExistsInSeachRequest

public boolean isExistsInSeachRequest(CustomField customField,
                                      SearchRequest searchRequest)

populateFromParams

public void populateFromParams(CustomField customField,
                               FieldValuesHolder fieldValuesHolder,
                               ActionParams actionParams)

makeSearchParameters

public abstract List makeSearchParameters(CustomField field,
                                          CustomFieldParams params)
Parameters:
field -
params - must never be null
Returns:
List of SearchParameters.

getParamsFromSearchRequest

public abstract CustomFieldParams getParamsFromSearchRequest(CustomField customField,
                                                             SearchRequest searchRequest)

index

public abstract void index(org.apache.lucene.document.Document doc,
                           CustomField field,
                           Object value)
Add index to the given Document object. The "value" is/are the value object (s) returned from the CustomFieldType.

Parameters:
doc -
field -
value -

getQuerySnippet

public abstract String getQuerySnippet(CustomField customField,
                                       SearchRequest searchRequest)
Returns a query string that can be interpreted by the IssueNavigator action to execute this as a search request. The query string can then be used to partially reconstruct the searchRequest being passed i. The returned query string should be encoded using JiraUrlCodec.encode(java.lang.String) and begin with an &.

Parameters:
customField - - custom field call this method
searchRequest - - the search request to get the url parameters from
Returns:
String encoded query string


Copyright © 2002-2006 Atlassian. All Rights Reserved.