| Main | Javadoc | Source |
| ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.raritantechnologies.searchApp.SearchSource
Represents a search source: can be a web site, database, SOAP source, etc. - anything that has a search API or network protocol.
SearchSource is an abstract base class. Creation of SearchSource is done by ISearchFieldMapFactory using dynamic instantiation of a companion IXMLSearchSourceFactory class. The SearchSourceFactory implementation knows how to create a specific instance of a SearchSource from a specific type of <SourceType> XML tag.
SearchSource has data access methods for security purposes. The default implementation is to have no data access restrictions.
Data access can have multiple levels (total access, browse, partial access for example to a set of documents within a docbase controlled by an ACL list), or only metadata, no full text, concurrent access (simultaneous use limits), paid access, etc. SearchSource also lets QueryProcessors/QueryFormatters determine what field level access is available to a user.
Typically, the front end of the application will determine data access privilidges by determine which SearchSource are available to the user, and then once selected either by the user or by code, determine if the SearchSource can be used by the user at the time it is requested to run a search. The filtered list of SearchSources is then passed on to a compatible IQueryProcessor.
Examples: <SourceType name="[Source Name - unique within this source type]"
type="[Source Type]"
displayName="[Source Name shown to users]"
sourceFactoryClass="[fully qualified class name of implementer of this interface]"
queryProcessor="[fully qualified class name of implementer of source IQueryProcessor]" >
<StaticFields>
<StaticField fieldID="[the abstract field ID]"
value="the static value coming from this source" >
</StaticField>
</StaticFields>
<FieldFormatters>
<Formatter fieldID="[the abstract field ID]"
formatterClass="the IFieldFormatter class" >
<!-- Formatter specific fields -->
</Formatter>
</FieldFormatters>
<SecurityModel>
<search>[public|restricted]</search>
<fullText>[public|restricted]</fullText>
<loginName>[(optional) login name for this source]</loginName>
</SecurityModel>
<SortMap>
</SortMap>
<!-- SourceType - specific information -->
</SourceType>
| Field Summary | |
static java.lang.String | ID_FIELD |
static java.lang.String | IS_FEDERATED |
static java.lang.String | NUMBER_OF_FIELDS |
static java.lang.String | SECURE |
static java.lang.String | SOURCE_NAME |
static java.lang.String | SOURCE_TYPE |
static java.lang.String | TITLE_FIELD |
static java.lang.String | URL_FIELD |
| Constructor Summary | |
SearchSource() | |
| Method Summary | |
void | addFieldFormatter(IFieldFormatter fieldFormatter) |
void | addSearchField(SearchField searchField)SearchFields are added by the SearchFieldMapFactory |
protected void | addSourceAttributes(java.util.List attrList) |
void | addStaticField(java.lang.String fieldID, java.lang.String fieldValue) |
void | addStaticFields(IResult result) |
void | addUserSearchField(java.lang.String fieldID, java.lang.String userField) |
boolean | canAccess(ILoginInfo userInfo)Method to determine if a user can access this search source. |
boolean | canConsolidateSources()Methods to determine if a SearchSource can be consolidated: a single QueryProcessor can be used to search multiple sources. |
SearchSource[] | consolidateSources(SearchSource[] allSources)Returns a list of sources that can be searched with the this search source's QueryProcessor. |
java.lang.Object | delSearchField(java.lang.String fieldID)Removes a SearchField from the field map. |
void | formatResult(IResult result) |
void | formatResult(java.lang.String sessionID, IResult result) |
java.lang.String | formatResultField(java.lang.String fieldName, java.lang.String fieldVal) |
java.lang.String | formatResultField(java.lang.String sessionID, java.lang.String fieldName, java.lang.String fieldVal) |
void | formatResults(IResultSet results)Applies all IFieldFormatter(s) registered with this SearchSource to an IResult. |
void | formatResults(java.lang.String sessionID, IResultSet results) |
java.util.Iterator | getAccessableFields(ILoginInfo userInfo)Method to determine which fields in a SearchSource can be searched/viewed by a User Default implementation assumes that all fields are searchable/viewable. |
java.util.List | getAttributes() |
java.lang.String | getBasePath() |
java.lang.String | getConfigPath() |
java.lang.String | getDisplayName() |
java.util.List | getFieldFormatters() |
java.lang.String | getIDField()Returns the source field that should be used as a unique ID. |
java.lang.String | getName() |
java.lang.Object | getProperty(java.lang.String property)returns a Source Property. |
abstract IQueryProcessor | getQueryProcessor()returns the type of QueryProcessor that can access this SearchSource. |
SearchField | getSearchField(java.lang.String fieldID)Returns a SearchField instance for the given fieldID. |
java.lang.String | getSearchFieldID(java.lang.String sourceFieldName)returns the search field ID for the name of the field in the SearchSource. |
java.util.Iterator | getSearchFields() |
java.util.List | getSearchFields(java.lang.String fieldID) |
AbstractSortSpec | getSecondarySortSpec(java.lang.String primaryField)returns the background sort specification for a given primary sort field. |
ISecurityManager | getSecurityManager()Method returns the securityManager instance or null if there is none. |
java.lang.String | getSecurityManagerName() |
SecurityModel | getSecurityModel()Returns the SearchSource's security model. |
AbstractSortSpec | getSortSpec()returns the default background sort specification. |
ILoginInfo | getSourceCredentials(ILoginInfo userInfo)Method returns source credentials for a given user. |
java.lang.String[] | getSourcePropertyNames()Returns a list of Source type specific property names. |
java.lang.String | getTitleField() |
java.lang.String | getType()returns the source type. |
java.lang.String | getURLField() |
java.util.Map | getUserSearchFields() |
boolean | isMultiThreaded() |
void | setConfigPath(java.lang.String configPath) |
void | setDisplayName(java.lang.String displayName) |
void | setIDField(java.lang.String idField) |
void | setMultiThreaded(boolean multiThreaded) |
void | setName(java.lang.String sourceName)set/get the name of this instance of the SearchSource e.g. |
void | setSecurityManagerName(java.lang.String securityManager) |
void | setSecurityModel(SecurityModel securityModel) |
void | setSortMap(AbstractSortMap sortMap)sets the background sort map for this source. |
void | setSourcePropertyInfoSource(ISearchSourceInfo sourceInfo) |
void | setTitleField(java.lang.String titleField) |
void | setType(java.lang.String sourceType)sets the source type. |
void | setURLField(java.lang.String urlField) |
boolean | shouldFormatResults() |
boolean | supportsBackgroundSort()Returns true if this source supports multi-level sorting. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final java.lang.String ID_FIELD
public static final java.lang.String URL_FIELD
public static final java.lang.String TITLE_FIELD
public static final java.lang.String NUMBER_OF_FIELDS
public static final java.lang.String SOURCE_TYPE
public static final java.lang.String SOURCE_NAME
public static final java.lang.String SECURE
public static final java.lang.String IS_FEDERATED
| Constructor Detail |
public SearchSource()
| Method Detail |
public abstract IQueryProcessor getQueryProcessor()
public void setType(java.lang.String sourceType)
public java.lang.String getType()
public void setName(java.lang.String sourceName)
public java.lang.String getName()
public void setDisplayName(java.lang.String displayName)
public java.lang.String getDisplayName()
public void setMultiThreaded(boolean multiThreaded)
public boolean isMultiThreaded()
public void addSearchField(SearchField searchField)
public java.lang.Object delSearchField(java.lang.String fieldID)
fieldID - the search field ID to removepublic java.util.Iterator getSearchFields()
public SearchField getSearchField(java.lang.String fieldID)
public java.util.List getSearchFields(java.lang.String fieldID)
public boolean shouldFormatResults()
public void addFieldFormatter(IFieldFormatter fieldFormatter)
public void addStaticField(java.lang.String fieldID,
java.lang.String fieldValue)public void formatResults(IResultSet results)
public void formatResults(java.lang.String sessionID,
IResultSet results)public void addStaticFields(IResult result)
public void formatResult(IResult result)
public void formatResult(java.lang.String sessionID,
IResult result)public java.lang.String formatResultField(java.lang.String fieldName,
java.lang.String fieldVal)public java.lang.String formatResultField(java.lang.String sessionID,
java.lang.String fieldName,
java.lang.String fieldVal)public java.util.List getFieldFormatters()
public java.lang.String getSearchFieldID(java.lang.String sourceFieldName)
public java.lang.String getIDField()
public void setIDField(java.lang.String idField)
public java.lang.String getTitleField()
public void setTitleField(java.lang.String titleField)
public java.lang.String getURLField()
public void setURLField(java.lang.String urlField)
public java.lang.String getBasePath()
public java.lang.String[] getSourcePropertyNames()
public java.lang.Object getProperty(java.lang.String property)
public void setSourcePropertyInfoSource(ISearchSourceInfo sourceInfo)
public boolean canAccess(ILoginInfo userInfo)
public ILoginInfo getSourceCredentials(ILoginInfo userInfo)
public ISecurityManager getSecurityManager()
public SecurityModel getSecurityModel()
public void setSecurityModel(SecurityModel securityModel)
public void setSecurityManagerName(java.lang.String securityManager)
public java.lang.String getSecurityManagerName()
public void setConfigPath(java.lang.String configPath)
public java.lang.String getConfigPath()
public java.util.Iterator getAccessableFields(ILoginInfo userInfo)
public boolean supportsBackgroundSort()
public void setSortMap(AbstractSortMap sortMap)
public AbstractSortSpec getSortSpec()
public AbstractSortSpec getSecondarySortSpec(java.lang.String primaryField)
public boolean canConsolidateSources()
public SearchSource[] consolidateSources(SearchSource[] allSources)
public void addUserSearchField(java.lang.String fieldID,
java.lang.String userField)public java.util.Map getUserSearchFields()
public java.util.List getAttributes()
protected void addSourceAttributes(java.util.List attrList)
| ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||