org.jscience.linguistics.search
Class ShiftOrWildcards

java.lang.Object
  extended by org.jscience.linguistics.search.StringSearch
      extended by org.jscience.linguistics.search.ShiftOr
          extended by org.jscience.linguistics.search.ShiftOrWildcards

public class ShiftOrWildcards
extends ShiftOr

An implementation of the Shift-Or algorithm with wildcards ("don't care" symbols). The wildcard character is initially '?', but any character can be used through the processChars(char[],char) and the processBytes(byte[],byte) methods.

 Preprocessing: O(2n + ∑) time

Searching : O(mn / log n) (worst case and average)

See Also:
processBytes(byte[],byte), processChars(char[],char), ShiftOr

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jscience.linguistics.search.StringSearch
StringSearch.Dispatch, StringSearch.ReflectionDispatch
 
Field Summary
static char wildcard
          The wildcard character (initially '?').
 
Fields inherited from class org.jscience.linguistics.search.StringSearch
activeDispatch, useNative
 
Constructor Summary
ShiftOrWildcards()
          Constructor for ShiftOrWildcards.
 
Method Summary
 java.lang.Object processBytes(byte[] pattern)
          Pre-processing of the pattern.
 java.lang.Object processBytes(byte[] pattern, byte w)
          Pre-processing of the pattern.
 java.lang.Object processChars(char[] pattern)
          Pre-processing of the pattern.
 java.lang.Object processChars(char[] pattern, char w)
          Pre-processing of the pattern.
 java.lang.Object processString(java.lang.String pattern, char w)
          Pre-processing of the pattern.
 
Methods inherited from class org.jscience.linguistics.search.ShiftOr
searchBytes, searchChars
 
Methods inherited from class org.jscience.linguistics.search.StringSearch
createCharIntMap, createCharIntMap, equals, hashCode, index, processString, searchBytes, searchBytes, searchBytes, searchBytes, searchBytes, searchChars, searchChars, searchChars, searchChars, searchChars, searchString, searchString, searchString, searchString, searchString, searchString, toString, toStringBuffer, usesNative, usesReflection
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

wildcard

public static char wildcard
The wildcard character (initially '?').

Constructor Detail

ShiftOrWildcards

public ShiftOrWildcards()
Constructor for ShiftOrWildcards. Note that it is not required to create multiple instances.

Method Detail

processBytes

public java.lang.Object processBytes(byte[] pattern)
Pre-processing of the pattern. The pattern may not exceed 31 bytes in length. If it does, only it's first 31 bytes are processed which might lead to unexpected results. Returns an int array. The wildcard character is obtained from the static wildcard field.

Overrides:
processBytes in class ShiftOr
Parameters:
pattern - DOCUMENT ME!
Returns:
DOCUMENT ME!
See Also:
StringSearch.processBytes(byte[]), processBytes(byte[],byte)

processBytes

public java.lang.Object processBytes(byte[] pattern,
                                     byte w)
Pre-processing of the pattern. The pattern may not exceed 31 bytes in length. If it does, only it's first 31 bytes are processed which might lead to unexpected results. Returns an int array.

Parameters:
pattern - the byte array containing the pattern, may not be null
w - the wildcard byte character
Returns:
an int array

processChars

public java.lang.Object processChars(char[] pattern)
Pre-processing of the pattern. The pattern may not exceed 31 bytes in length. If it does, only it's first 31 bytes are processed which might lead to unexpected results. Returns a CharIntMap. The wildcard character is obtained from the static wildcard field.

Overrides:
processChars in class ShiftOr
Parameters:
pattern - the char array containing the pattern, may not be null
Returns:
a CharIntMap
See Also:
StringSearch.processChars(char[]), processChars(char[],char)

processChars

public java.lang.Object processChars(char[] pattern,
                                     char w)
Pre-processing of the pattern. The pattern may not exceed 31 bytes in length. If it does, only it's first 31 bytes are processed which might lead to unexpected results. Returns a CharIntMap.

Parameters:
pattern - the char array containing the pattern, may not be null
w - the wildcard character
Returns:
a CharIntMap.

processString

public java.lang.Object processString(java.lang.String pattern,
                                      char w)
Pre-processing of the pattern. The pattern may not exceed 31 bytes in length. If it does, only it's first 31 bytes are processed which might lead to unexpected results. Returns a CharIntMap.

Parameters:
pattern - the String containing the pattern, may not be null
w - the wildcard character
Returns:
a CharIntMap.