com.raritantechnologies.searchApp
Class SearchFieldMap

java.lang.Object
  extended bycom.raritantechnologies.searchApp.SearchFieldMap
All Implemented Interfaces:
ISearchFieldMap

public class SearchFieldMap
extends java.lang.Object
implements ISearchFieldMap

General implementation of an ISearchFieldMap.

Implements application-wide mapping strategy for field title/field data for use by the User Interface and back-end "SearchSources". Translates user interface search parameters to SearchSource-specific fields for search operations. Translates SearchSource-specific result fields to display fields for presentation.

Manages configurable Search Forms and result Display forms.

The following diagram shows the relation of the SearchFieldMap to the User Interface, search and results display processes. The SearchFieldMap is constructed by an ISearchFieldMapFactory from some configuration source (typically an XML file). The SearchFieldMap is used by SearchFormRenderers (see ISearchFormRenderer interface) to format search input forms, by QueryProcessors ( see IQueryProcessor interface) to configure searchs for their specific Search source, and by DisplayFormRenderers to configure HTML results displays.


Developed by Raritan Technologies .

Author:
Ted Sullivan, Glenn Robitaille

Field Summary
 
Fields inherited from interface com.raritantechnologies.searchApp.ISearchFieldMap
DEFAULT_CATEGORY
 
Constructor Summary
SearchFieldMap()
           
 
Method Summary
 void addDisplayFormRendererFactory(java.lang.String displayFormName, DisplayFormRendererFactory dfRendererFac)
           
 void addSearchFormField(java.lang.String searchFormName, SearchFormField sff)
          Called by SearchFieldMapFactory to set the field_ids for search form type (e.g.
 void addSearchFormField(java.lang.String searchFormName, java.lang.String category, SearchFormField sff)
           
 void addSearchFormRendererFactory(java.lang.String searchFormName, java.lang.String category, SearchFormRendererFactory sfRendererFac)
           
 void addSearchSource(SearchSource sSource)
           
 java.lang.String formatField(java.lang.String fieldID, java.lang.String fieldVal)
           
 OrderedMap getAbstractFieldData(java.lang.String fieldID)
          return the AbstractSearchField data map - maps abstractVal (key) to UI name.
 AbstractSearchField getAbstractSearchField(java.lang.String fieldID)
           
 java.util.Iterator getAvailableSearchSources()
          This method will return all available search sources.
 java.lang.String getCorrespondingFieldID(java.lang.String sourcename, java.lang.String sourcefld)
          the the fieldID corresponding to a searchSource name / field.
 java.lang.String[] getDisplayFormIDs(java.lang.String displayName)
          get the fields used for display type.
 java.lang.String[] getDisplayFormNames()
          get the types of display forms available.
 IDisplayFormRenderer getDisplayFormRenderer(java.lang.String displayFormName)
          DisplayForm Renderers.
 OrderedMap getFieldData(java.lang.String[] sourceNames, java.lang.String fieldID)
          Returns a merged (union) set of field data for a set of source names.
 java.util.Iterator getFieldIDs()
          returns the IDs of the fields specified in the section of the config.xml
 java.util.Iterator getFieldIDs(java.lang.String[] sourceNames)
          returns the union of all fieldIDs for a set of SearchSource(s)
 java.lang.String getFieldName(java.lang.String fieldID)
          Returns the field name.
 java.lang.String getFieldName(java.lang.String[] sourceNames, java.lang.String fieldID)
          get the fieldname for this fieldID across all sources.
 java.lang.String getFieldType(java.lang.String fieldID)
          Returns the field type.
 java.lang.String getSearchField(java.lang.String sourceName, java.lang.String fieldID)
          Get the name of a search field for a fieldID as it is used in a specific search source.
 java.lang.String getSearchFieldList(java.lang.String[] sourceNames, java.lang.String fieldID)
          get list of search fields for a fieldID in a list of search sources return as comma separated list.
 java.lang.String[] getSearchFields(java.lang.String sourceName, java.lang.String fieldID)
          Returns the set of search fields that map to a given fieldID for a given search source name.
 SearchFormField getSearchFormField(java.lang.String searchFormName, java.lang.String fieldID)
          returns the name assigned to a search form field: e.g.
 SearchFormField getSearchFormField(java.lang.String searchFormName, java.lang.String category, java.lang.String fieldID)
           
 java.lang.String[] getSearchFormIDs(java.lang.String searchFormName)
          Return the list of fields in a Search Form of a given form name.
 java.lang.String[] getSearchFormIDs(java.lang.String searchFormName, java.lang.String category)
           
 java.lang.String[] getSearchFormNames()
          returns a list of searchForms available.
 java.lang.String[] getSearchFormNames(java.lang.String category)
           
 ISearchFormRenderer getSearchFormRenderer(java.lang.String searchFormName, java.lang.String category)
          SearchForm renderers.
 SearchSource getSearchSource(java.lang.String sourceName)
          returns a SearchSource of a given Name.
 SearchSource getSearchSource(java.lang.String sourceType, java.lang.String sourceName)
           
 SearchSource[] getSearchSources(java.lang.String sourceType)
          Return list of sources - for a given sourceType
 java.lang.String[] getSearchSourceTypes()
          returns a list of the SearchSource types in the SearchFieldMap
 java.util.Iterator getSourceKeywords(java.lang.String[] sourceNames)
          returns the keywords list for the specified products.
 void setDisplayFormIDs(java.lang.String displayName, java.lang.String[] field_ids)
          Called by SearchFieldMapFactory to set the field_ids for a given display type (e.g.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SearchFieldMap

public SearchFieldMap()
Method Detail

addSearchSource

public void addSearchSource(SearchSource sSource)
Specified by:
addSearchSource in interface ISearchFieldMap

getSearchSourceTypes

public java.lang.String[] getSearchSourceTypes()
Description copied from interface: ISearchFieldMap
returns a list of the SearchSource types in the SearchFieldMap

Specified by:
getSearchSourceTypes in interface ISearchFieldMap

getSearchSources

public SearchSource[] getSearchSources(java.lang.String sourceType)
Return list of sources - for a given sourceType

Specified by:
getSearchSources in interface ISearchFieldMap
Parameters:
sourceType - The type of SearchSource e.g. Verity, SQL, HTMLWorker, Z39.50 worker etc.
Returns:
A list of the source aliases for this type.

getSearchSource

public SearchSource getSearchSource(java.lang.String sourceType,
                                    java.lang.String sourceName)
Specified by:
getSearchSource in interface ISearchFieldMap

getAvailableSearchSources

public java.util.Iterator getAvailableSearchSources()
This method will return all available search sources. This is useful when performing a federated search where type is not an issue.

Specified by:
getAvailableSearchSources in interface ISearchFieldMap

getSearchSource

public SearchSource getSearchSource(java.lang.String sourceName)
returns a SearchSource of a given Name.

Specified by:
getSearchSource in interface ISearchFieldMap

getFieldIDs

public java.util.Iterator getFieldIDs()
returns the IDs of the fields specified in the section of the config.xml

Specified by:
getFieldIDs in interface ISearchFieldMap

getFieldIDs

public java.util.Iterator getFieldIDs(java.lang.String[] sourceNames)
returns the union of all fieldIDs for a set of SearchSource(s)

Specified by:
getFieldIDs in interface ISearchFieldMap

getFieldName

public java.lang.String getFieldName(java.lang.String[] sourceNames,
                                     java.lang.String fieldID)
get the fieldname for this fieldID across all sources. if different, returns mappings to sources deprecated(?) field Name will be specified in config XML.

Specified by:
getFieldName in interface ISearchFieldMap

getFieldType

public java.lang.String getFieldType(java.lang.String fieldID)
Returns the field type. Field type is the data type.

Specified by:
getFieldType in interface ISearchFieldMap

getFieldName

public java.lang.String getFieldName(java.lang.String fieldID)
Returns the field name. Field name is what the user should see.

Specified by:
getFieldName in interface ISearchFieldMap

getFieldData

public OrderedMap getFieldData(java.lang.String[] sourceNames,
                               java.lang.String fieldID)
Returns a merged (union) set of field data for a set of source names. Field data is typically used for dropdown lists. Example: if source A has 1,2, and 3 and source B has 1,4 and 5 this should return 1,2,3,4,5. Many fields will not have associated data. In this case, the method will return a null pointer to indicate that field data is not applicable for this fieldID.

Specified by:
getFieldData in interface ISearchFieldMap

getSearchField

public java.lang.String getSearchField(java.lang.String sourceName,
                                       java.lang.String fieldID)
Get the name of a search field for a fieldID as it is used in a specific search source.

Specified by:
getSearchField in interface ISearchFieldMap

getSearchFields

public java.lang.String[] getSearchFields(java.lang.String sourceName,
                                          java.lang.String fieldID)
Description copied from interface: ISearchFieldMap
Returns the set of search fields that map to a given fieldID for a given search source name. This is used in cases where an abstract fieldID maps to more than one source field.

Specified by:
getSearchFields in interface ISearchFieldMap

getSearchFieldList

public java.lang.String getSearchFieldList(java.lang.String[] sourceNames,
                                           java.lang.String fieldID)
get list of search fields for a fieldID in a list of search sources return as comma separated list.

Specified by:
getSearchFieldList in interface ISearchFieldMap

setDisplayFormIDs

public void setDisplayFormIDs(java.lang.String displayName,
                              java.lang.String[] field_ids)
Called by SearchFieldMapFactory to set the field_ids for a given display type (e.g. "brief", "full" etc.). Display types are typically defined in configuration files.

Specified by:
setDisplayFormIDs in interface ISearchFieldMap

getDisplayFormNames

public java.lang.String[] getDisplayFormNames()
Description copied from interface: ISearchFieldMap
get the types of display forms available.

Specified by:
getDisplayFormNames in interface ISearchFieldMap

getDisplayFormIDs

public java.lang.String[] getDisplayFormIDs(java.lang.String displayName)
get the fields used for display type.

Specified by:
getDisplayFormIDs in interface ISearchFieldMap

addSearchFormField

public void addSearchFormField(java.lang.String searchFormName,
                               SearchFormField sff)
Description copied from interface: ISearchFieldMap
Called by SearchFieldMapFactory to set the field_ids for search form type (e.g. "simple", "advanced", "boolean" etc.).

Specified by:
addSearchFormField in interface ISearchFieldMap

addSearchFormField

public void addSearchFormField(java.lang.String searchFormName,
                               java.lang.String category,
                               SearchFormField sff)
Specified by:
addSearchFormField in interface ISearchFieldMap

getSearchFormNames

public java.lang.String[] getSearchFormNames()
Description copied from interface: ISearchFieldMap
returns a list of searchForms available.

Specified by:
getSearchFormNames in interface ISearchFieldMap

getSearchFormNames

public java.lang.String[] getSearchFormNames(java.lang.String category)
Specified by:
getSearchFormNames in interface ISearchFieldMap

getSearchFormIDs

public java.lang.String[] getSearchFormIDs(java.lang.String searchFormName)
Return the list of fields in a Search Form of a given form name.

Specified by:
getSearchFormIDs in interface ISearchFieldMap

getSearchFormIDs

public java.lang.String[] getSearchFormIDs(java.lang.String searchFormName,
                                           java.lang.String category)
Specified by:
getSearchFormIDs in interface ISearchFieldMap

getSearchFormField

public SearchFormField getSearchFormField(java.lang.String searchFormName,
                                          java.lang.String fieldID)
returns the name assigned to a search form field: e.g.

Specified by:
getSearchFormField in interface ISearchFieldMap

getSearchFormField

public SearchFormField getSearchFormField(java.lang.String searchFormName,
                                          java.lang.String category,
                                          java.lang.String fieldID)
Specified by:
getSearchFormField in interface ISearchFieldMap

getSearchFormRenderer

public ISearchFormRenderer getSearchFormRenderer(java.lang.String searchFormName,
                                                 java.lang.String category)
SearchForm renderers.

Specified by:
getSearchFormRenderer in interface ISearchFieldMap

addSearchFormRendererFactory

public void addSearchFormRendererFactory(java.lang.String searchFormName,
                                         java.lang.String category,
                                         SearchFormRendererFactory sfRendererFac)

getDisplayFormRenderer

public IDisplayFormRenderer getDisplayFormRenderer(java.lang.String displayFormName)
DisplayForm Renderers.

Specified by:
getDisplayFormRenderer in interface ISearchFieldMap

addDisplayFormRendererFactory

public void addDisplayFormRendererFactory(java.lang.String displayFormName,
                                          DisplayFormRendererFactory dfRendererFac)

getCorrespondingFieldID

public java.lang.String getCorrespondingFieldID(java.lang.String sourcename,
                                                java.lang.String sourcefld)
the the fieldID corresponding to a searchSource name / field.

Specified by:
getCorrespondingFieldID in interface ISearchFieldMap

getSourceKeywords

public java.util.Iterator getSourceKeywords(java.lang.String[] sourceNames)
returns the keywords list for the specified products.

Specified by:
getSourceKeywords in interface ISearchFieldMap

formatField

public java.lang.String formatField(java.lang.String fieldID,
                                    java.lang.String fieldVal)
Specified by:
formatField in interface ISearchFieldMap

getAbstractFieldData

public OrderedMap getAbstractFieldData(java.lang.String fieldID)
Description copied from interface: ISearchFieldMap
return the AbstractSearchField data map - maps abstractVal (key) to UI name.

Specified by:
getAbstractFieldData in interface ISearchFieldMap

getAbstractSearchField

public AbstractSearchField getAbstractSearchField(java.lang.String fieldID)
Specified by:
getAbstractSearchField in interface ISearchFieldMap