org.pfsw.text
Class SqlMatchRuleVisitor

java.lang.Object
  extended by org.pfsw.text.SqlMatchRuleVisitor
All Implemented Interfaces:
MatchRuleVisitor

public class SqlMatchRuleVisitor
extends java.lang.Object
implements MatchRuleVisitor

Walks over a MatchRule to create a SQL WHERE clause out of it.


Field Summary
protected static java.lang.String CLOSE_PARENTHESIS
           
protected static java.lang.String COMMA
           
protected static java.lang.String END_QUOTE
           
protected static char MULTICHAR_WILDCARD
           
protected static java.lang.String OPEN_PARENTHESIS
           
protected static java.lang.String SQL_OPERATOR_AND
           
protected static java.lang.String SQL_OPERATOR_EQUAL
           
protected static java.lang.String SQL_OPERATOR_GE
           
protected static java.lang.String SQL_OPERATOR_GREATER
           
protected static java.lang.String SQL_OPERATOR_IN
           
protected static java.lang.String SQL_OPERATOR_LE
           
protected static java.lang.String SQL_OPERATOR_LESS
           
protected static java.lang.String SQL_OPERATOR_LIKE
           
protected static java.lang.String SQL_OPERATOR_NOT
           
protected static java.lang.String SQL_OPERATOR_OR
           
protected static java.lang.String START_QUOTE
           
 
Constructor Summary
SqlMatchRuleVisitor()
          Initialize the new instance with default values.
 
Method Summary
protected  void append_IN(java.lang.String attrName, java.lang.String[] values)
           
protected  void appendAttribute(java.lang.String name, MatchRuleCompareOperator compareOperator, java.lang.String attrValue)
           
protected  void appendAttributeValues(java.lang.String name, MatchRuleCompareOperator compareOperator, java.lang.String[] values)
           
protected  void appendOperators(boolean andOperator, boolean notOperator)
           
protected  void appendValue(java.lang.String value)
           
 java.lang.String asSqlClause(MatchRule matchRule)
          Converts the given match rule into a SQL conditional clause.
 void attribute(java.lang.String name, MatchRuleCompareOperator compareOperator, java.lang.String[] values, boolean andOperator, boolean notOperator)
          This method will be called for each attribute.
protected  boolean canBeInOperator(MatchRuleCompareOperator compareOperator, java.lang.String[] values)
           
 void endGroup()
          This method will be called for each group end occurrence.
protected  java.lang.StringBuffer getBuffer()
           
protected  boolean groupStarted()
           
protected  void groupStarted(boolean newValue)
           
protected  void setBuffer(java.lang.StringBuffer newValue)
           
 void startGroup(boolean andOperator, boolean notOperator)
          This method will be called for each start of a new group.
 void walkThroughFinished()
          This method will be called when the MatchRule has finished to walk through its elements.
 void walkThroughInit()
          This method will be called right before the MatchRule walks through its elements.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MULTICHAR_WILDCARD

protected static final char MULTICHAR_WILDCARD
See Also:
Constant Field Values

SQL_OPERATOR_NOT

protected static final java.lang.String SQL_OPERATOR_NOT
See Also:
Constant Field Values

SQL_OPERATOR_AND

protected static final java.lang.String SQL_OPERATOR_AND
See Also:
Constant Field Values

SQL_OPERATOR_OR

protected static final java.lang.String SQL_OPERATOR_OR
See Also:
Constant Field Values

SQL_OPERATOR_IN

protected static final java.lang.String SQL_OPERATOR_IN
See Also:
Constant Field Values

SQL_OPERATOR_LIKE

protected static final java.lang.String SQL_OPERATOR_LIKE
See Also:
Constant Field Values

SQL_OPERATOR_EQUAL

protected static final java.lang.String SQL_OPERATOR_EQUAL
See Also:
Constant Field Values

SQL_OPERATOR_GE

protected static final java.lang.String SQL_OPERATOR_GE
See Also:
Constant Field Values

SQL_OPERATOR_LE

protected static final java.lang.String SQL_OPERATOR_LE
See Also:
Constant Field Values

SQL_OPERATOR_GREATER

protected static final java.lang.String SQL_OPERATOR_GREATER
See Also:
Constant Field Values

SQL_OPERATOR_LESS

protected static final java.lang.String SQL_OPERATOR_LESS
See Also:
Constant Field Values

OPEN_PARENTHESIS

protected static final java.lang.String OPEN_PARENTHESIS
See Also:
Constant Field Values

CLOSE_PARENTHESIS

protected static final java.lang.String CLOSE_PARENTHESIS
See Also:
Constant Field Values

COMMA

protected static final java.lang.String COMMA
See Also:
Constant Field Values

START_QUOTE

protected static final java.lang.String START_QUOTE
See Also:
Constant Field Values

END_QUOTE

protected static final java.lang.String END_QUOTE
See Also:
Constant Field Values
Constructor Detail

SqlMatchRuleVisitor

public SqlMatchRuleVisitor()
Initialize the new instance with default values.

Method Detail

walkThroughInit

public void walkThroughInit()
This method will be called right before the MatchRule walks through its elements.

Specified by:
walkThroughInit in interface MatchRuleVisitor

walkThroughFinished

public void walkThroughFinished()
This method will be called when the MatchRule has finished to walk through its elements.

Specified by:
walkThroughFinished in interface MatchRuleVisitor

startGroup

public void startGroup(boolean andOperator,
                       boolean notOperator)
This method will be called for each start of a new group.

Specified by:
startGroup in interface MatchRuleVisitor
Parameters:
andOperator - If true it is an AND combination otherwise it is OR
notOperator - Is only true for a NOT operation

endGroup

public void endGroup()
This method will be called for each group end occurrence.

Specified by:
endGroup in interface MatchRuleVisitor

attribute

public void attribute(java.lang.String name,
                      MatchRuleCompareOperator compareOperator,
                      java.lang.String[] values,
                      boolean andOperator,
                      boolean notOperator)
This method will be called for each attribute.

Specified by:
attribute in interface MatchRuleVisitor
Parameters:
name - The attribute's name
compareOperator - The operator used to compare values
values - All values the attrubute my match (implicit OR combination !)
andOperator - If true it is an AND combination otherwise it is OR
notOperator - Is only true for a NOT operation

asSqlClause

public java.lang.String asSqlClause(MatchRule matchRule)
Converts the given match rule into a SQL conditional clause.

Parameters:
matchRule - The rule to be converted

appendOperators

protected void appendOperators(boolean andOperator,
                               boolean notOperator)

appendAttribute

protected void appendAttribute(java.lang.String name,
                               MatchRuleCompareOperator compareOperator,
                               java.lang.String attrValue)

appendValue

protected void appendValue(java.lang.String value)

appendAttributeValues

protected void appendAttributeValues(java.lang.String name,
                                     MatchRuleCompareOperator compareOperator,
                                     java.lang.String[] values)

append_IN

protected void append_IN(java.lang.String attrName,
                         java.lang.String[] values)

canBeInOperator

protected boolean canBeInOperator(MatchRuleCompareOperator compareOperator,
                                  java.lang.String[] values)

getBuffer

protected java.lang.StringBuffer getBuffer()

setBuffer

protected void setBuffer(java.lang.StringBuffer newValue)

groupStarted

protected boolean groupStarted()

groupStarted

protected void groupStarted(boolean newValue)