com.raritantechnologies.searchApp
Interface ISearchFieldMap

All Known Implementing Classes:
SearchFieldMap, XMLSourceSearchFieldMap

public interface ISearchFieldMap

Implements global field mapping strategy for a Raritan Search Application. An implementation of ISearchFieldMap is owned by the ConfigurationManager.

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.

A handle to the application-wide ISearchFieldMap is obtained from the ConfigurationManager using the following calling sequence:

    ConfigurationManager configMan = ConfigurationManager.getInstance( );
    ISearchFieldMap sfMap = configMan.getSearchFieldMap( );
 

The application ISearchFieldMap is contructed from the application Configuration data using an ISearchFieldMapFactory. In an XML based configuration, the implementation class is XMLSearchFieldMapFactory. The ISearchFieldMapFactory is used by ConfigurationManager to get its ISearchFieldMap:

    public ISearchFieldMap getSearchFieldMap( )
    {
      // cacheing code to ensure we have a singleton. . .

        ISearchFieldMapFactory sfMapFac = getSearchFieldMapFactory( );
        theSearchFieldMap = sfMapFac.createSearchFieldMap( );
        // . . .
        return theSearchFieldMap;
    }
 

Developed by Raritan Technologies .

Author:
Ted Sullivan, Glenn Robitaille

Field Summary
static java.lang.String DEFAULT_CATEGORY
           
 
Method Summary
 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 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()
          returns an iterator over all 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 displayType)
          get the fields used for display type.
 java.lang.String[] getDisplayFormNames()
          get the types of display forms available.
 IDisplayFormRenderer getDisplayFormRenderer(java.lang.String displayFormName)
           
 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 list of abstract field ids from the <FieldSpecs>
 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 (display 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.
 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)
           
 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 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)
          Configurable SearchForm and DisplayForm renderers
 SearchSource getSearchSource(java.lang.String sourceName)
          returns the first searchSource of this name in the map.
 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 sources.
 void setDisplayFormIDs(java.lang.String displayType, java.lang.String[] field_ids)
          Called by SearchFieldMapFactory to set the field_ids for a given display type (e.g.
 

Field Detail

DEFAULT_CATEGORY

public static final java.lang.String DEFAULT_CATEGORY
See Also:
Constant Field Values
Method Detail

addSearchSource

public void addSearchSource(SearchSource sSource)

getSearchSourceTypes

public java.lang.String[] getSearchSourceTypes()
returns a list of the SearchSource types in the SearchFieldMap


getSearchSources

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

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)

getSearchSource

public SearchSource getSearchSource(java.lang.String sourceName)
returns the first searchSource of this name in the map.


getAvailableSearchSources

public java.util.Iterator getAvailableSearchSources()
returns an iterator over all sources. Useful for federated searches.


getFieldIDs

public java.util.Iterator getFieldIDs()
returns the list of abstract field ids from the <FieldSpecs>


getFieldIDs

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


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


getFieldType

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


getFieldName

public java.lang.String getFieldName(java.lang.String fieldID)
Returns the field name (display name)


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. returns an OrderedMap in which the key is the dataID and the value is the


getAbstractFieldData

public OrderedMap getAbstractFieldData(java.lang.String fieldID)
return the AbstractSearchField data map - maps abstractVal (key) to UI name.


getAbstractSearchField

public AbstractSearchField getAbstractSearchField(java.lang.String fieldID)

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.


getSearchFields

public 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. This is used in cases where an abstract fieldID maps to more than one source field.


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.


setDisplayFormIDs

public void setDisplayFormIDs(java.lang.String displayType,
                              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.


getDisplayFormNames

public java.lang.String[] getDisplayFormNames()
get the types of display forms available.


getDisplayFormIDs

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


addSearchFormField

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


addSearchFormField

public void addSearchFormField(java.lang.String searchFormName,
                               java.lang.String category,
                               SearchFormField sff)

getSearchFormNames

public java.lang.String[] getSearchFormNames()
returns a list of searchForms available.


getSearchFormNames

public java.lang.String[] getSearchFormNames(java.lang.String category)

getSearchFormIDs

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


getSearchFormIDs

public java.lang.String[] getSearchFormIDs(java.lang.String searchFormName,
                                           java.lang.String category)

getSearchFormField

public SearchFormField getSearchFormField(java.lang.String searchFormName,
                                          java.lang.String fieldID)

getSearchFormField

public SearchFormField getSearchFormField(java.lang.String searchFormName,
                                          java.lang.String category,
                                          java.lang.String fieldID)

getSearchFormRenderer

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


getDisplayFormRenderer

public IDisplayFormRenderer getDisplayFormRenderer(java.lang.String displayFormName)

getCorrespondingFieldID

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


getSourceKeywords

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


formatField

public java.lang.String formatField(java.lang.String fieldID,
                                    java.lang.String fieldVal)