com.raritantechnologies.searchApp.queryFilters
Class BooleanQueryParser

java.lang.Object
  extended bycom.raritantechnologies.searchApp.queryFilters.BooleanQueryParser
All Implemented Interfaces:
IConfigurable, IQueryParser

public class BooleanQueryParser
extends java.lang.Object
implements IQueryParser

Converts a query field with multiple values into a language or source-specific boolean search (any|all).

Example: if a input field Keywords has the following value:

"big, red, tomato patch"
The parser can change this to:

big <OR> red <OR> "tomato patch" If the main booleanOperator attribute is set to 'OR' and the Source orOperator = <OR> and the start and end phrase characters are set to ".
XML Configuration Template:
  <QueryParser class="com.raritantechnologies.searchApp.queryFilters.BooleanQueryParser"
           booleanOperator="AND|OR(default)"
           startPhrase="("
           endPhrase=")"
           defaultDelimiter=","  >

    <!-- Optional set of Source tags: use if more than one 'language' needs to be supported -->
    <Sources>
      <!-- one or more Source elements: -->
      <Source name="[ 'default' or name of source language ]"
                 andOperator="[ operator for AND operation ]" 
                 orOperator="[ operator for OR operation ]"
                 startPhraseChar="""
                 endPhraseChar=""" />
      <!-- etc. . . -->
    </Sources>

    <Fields>
      <!-- one or more Field elements: to combine input fields, use the same output field name -->
      <!-- specifiy a delimiter IF it is different from the default delimiter.                 -->
      <Field ID="[ fieldID ]" delimiter="," outputField="[ output field name ]" />
      <!-- etc. . . -->
    </Fields>

  </SourceType>
 

Developed by Raritan Technologies .

Author:
Ted Sullivan

Constructor Summary
BooleanQueryParser()
           
 
Method Summary
 java.lang.String createQuery(OrderedMap params, java.lang.String language, ILoginInfo userInfo)
           
 java.util.List getErrors()
          Returns the errors that occurred during the translate() step.
 void initialize(org.w3c.dom.Element elem)
          Initializes the object from an XML tag or element.
 OrderedMap parse(OrderedMap params, ILoginInfo userInfo)
           
 OrderedMap parse(OrderedMap params, java.lang.String language, ILoginInfo userInfo)
          Translate using the input parameters if this is how the query is passed.
 void setLanguage(java.lang.String language)
           
 void setSessionID(java.lang.String sessionID)
          Allows QueryParser object to access the sessionData.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BooleanQueryParser

public BooleanQueryParser()
Method Detail

parse

public OrderedMap parse(OrderedMap params,
                        java.lang.String language,
                        ILoginInfo userInfo)
                 throws QueryParseException,
                        UnsupportedLanguageException
Description copied from interface: IQueryParser
Translate using the input parameters if this is how the query is passed.

Specified by:
parse in interface IQueryParser
Parameters:
params - An ordered map containing the query parameters
language - String representing the target language (e.g. VQL)
Throws:
QueryParseException
UnsupportedLanguageException

createQuery

public java.lang.String createQuery(OrderedMap params,
                                    java.lang.String language,
                                    ILoginInfo userInfo)
                             throws QueryParseException,
                                    UnsupportedLanguageException
Specified by:
createQuery in interface IQueryParser
Throws:
QueryParseException
UnsupportedLanguageException

parse

public OrderedMap parse(OrderedMap params,
                        ILoginInfo userInfo)
Specified by:
parse in interface IQueryParser

setLanguage

public void setLanguage(java.lang.String language)
Specified by:
setLanguage in interface IQueryParser

getErrors

public java.util.List getErrors()
Description copied from interface: IQueryParser
Returns the errors that occurred during the translate() step.

Specified by:
getErrors in interface IQueryParser
Returns:
the list of error(s) (if any) that occurred.

setSessionID

public void setSessionID(java.lang.String sessionID)
Description copied from interface: IQueryParser
Allows QueryParser object to access the sessionData.

Specified by:
setSessionID in interface IQueryParser

initialize

public void initialize(org.w3c.dom.Element elem)
Description copied from interface: IConfigurable
Initializes the object from an XML tag or element. This method is called by the Framework as part of the application initializtion. see ConfigurationManager, XMLConfigurationManager, XMLSearchFieldMapFactory, XMLSearchSourceFactory. Configurable objects that are owned or contained by other configurable objects will be initialized in by the parent object.

Specified by:
initialize in interface IQueryParser