com.microsoft.tfs.core.search.internal
Class VSSearchQueryParser

java.lang.Object
  extended by com.microsoft.tfs.core.search.internal.VSSearchQueryParser
All Implemented Interfaces:
IVSSearchQueryParser

public class VSSearchQueryParser
extends java.lang.Object
implements IVSSearchQueryParser


Nested Class Summary
static interface VSSearchQueryParser.TokenFoundCallback
           
 
Constructor Summary
VSSearchQueryParser()
           
 
Method Summary
 java.lang.String buildSearchString(IVSSearchQuery searchQuery)
           
 java.lang.String buildSearchStringFromTokens(int tokens, IVSSearchToken[] searchTokens)
           
static java.lang.String escapeString(java.lang.String tokenString, com.microsoft.tfs.core.search.internal.VSSearchQueryParser.AddQuotesMode addQuotesMode)
           
static java.lang.String escapeString(java.lang.String tokenString, com.microsoft.tfs.core.search.internal.VSSearchQueryParser.AddQuotesMode addQuotesMode, boolean isFilterFieldString)
          Escape a string (to be used when reconstructing a search string from the search query)
static int findFilterSeparator(java.lang.String tokenString)
          Returns the position of the filter separator in the token string (if the string contains such separator)
 IVSSearchFilterToken getSearchFilterToken(java.lang.String filterField, java.lang.String filterValue, int filterTokenType)
           
 IVSSearchToken getSearchToken(java.lang.String tokenText)
           
static boolean isEscape(char ch)
          Returns whether the specified character is an escape character
static boolean isExcludeFilter(char ch)
          Returns whether the specified character is a filter exclusion character
static boolean isFilterSeparator(char ch)
          Returns whether the specified character is a filter separator character
static boolean isQuote(char ch, int category)
          Returns whether the specified character is a quote
static boolean isSpace(char ch, int category)
          Returns whether the specified character is a space token delimiter
 IVSSearchQuery parse(java.lang.String searchString)
           
static void parseSearchString(java.lang.String searchString, VSSearchQueryParser.TokenFoundCallback tokenFoundCallback)
          Parse a search string and invoke the callback for each token found
static java.lang.String unescapeString(java.lang.String tokenString, java.util.concurrent.atomic.AtomicBoolean invalidEscape)
          Unescapes the search string
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VSSearchQueryParser

public VSSearchQueryParser()
Method Detail

parse

public IVSSearchQuery parse(java.lang.String searchString)
Specified by:
parse in interface IVSSearchQueryParser

buildSearchString

public java.lang.String buildSearchString(IVSSearchQuery searchQuery)
Specified by:
buildSearchString in interface IVSSearchQueryParser

buildSearchStringFromTokens

public java.lang.String buildSearchStringFromTokens(int tokens,
                                                    IVSSearchToken[] searchTokens)
Specified by:
buildSearchStringFromTokens in interface IVSSearchQueryParser

getSearchToken

public IVSSearchToken getSearchToken(java.lang.String tokenText)
Specified by:
getSearchToken in interface IVSSearchQueryParser

getSearchFilterToken

public IVSSearchFilterToken getSearchFilterToken(java.lang.String filterField,
                                                 java.lang.String filterValue,
                                                 int filterTokenType)
Specified by:
getSearchFilterToken in interface IVSSearchQueryParser
filterTokenType - one of the values defined by VSSearchFilterTokenType

isQuote

public static boolean isQuote(char ch,
                              int category)
Returns whether the specified character is a quote

Parameters:
category - the unicode category (Character.getType(char))

isSpace

public static boolean isSpace(char ch,
                              int category)
Returns whether the specified character is a space token delimiter


isEscape

public static boolean isEscape(char ch)
Returns whether the specified character is an escape character


isExcludeFilter

public static boolean isExcludeFilter(char ch)
Returns whether the specified character is a filter exclusion character


isFilterSeparator

public static boolean isFilterSeparator(char ch)
Returns whether the specified character is a filter separator character


parseSearchString

public static void parseSearchString(java.lang.String searchString,
                                     VSSearchQueryParser.TokenFoundCallback tokenFoundCallback)
Parse a search string and invoke the callback for each token found

Parameters:
searchString - String to parse
tokenFoundCallback - Callback function to call for each token found

findFilterSeparator

public static int findFilterSeparator(java.lang.String tokenString)
Returns the position of the filter separator in the token string (if the string contains such separator)

Parameters:
tokenString - The token string
Returns:
Separator position or -1 if no separator is found

unescapeString

public static java.lang.String unescapeString(java.lang.String tokenString,
                                              java.util.concurrent.atomic.AtomicBoolean invalidEscape)
Unescapes the search string

Parameters:
tokenString - The token string to unescape
invalidEscape - Whether the token had an invalid escape sequence
Returns:
The unescaped string

escapeString

public static java.lang.String escapeString(java.lang.String tokenString,
                                            com.microsoft.tfs.core.search.internal.VSSearchQueryParser.AddQuotesMode addQuotesMode)

escapeString

public static java.lang.String escapeString(java.lang.String tokenString,
                                            com.microsoft.tfs.core.search.internal.VSSearchQueryParser.AddQuotesMode addQuotesMode,
                                            boolean isFilterFieldString)
Escape a string (to be used when reconstructing a search string from the search query)

Parameters:
tokenString - String to escape
addQuotesMode -
isFilterFieldString -
Returns:
String with :, \ and quotes characters escaped (escaped with \ character)


© 2015 Microsoft. All rights reserved.