Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule Class Reference

Inheritance diagram for org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule:

Inheritance graph
[legend]
Collaboration diagram for org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleRewritingRule (String queryPattern, String rewrite, boolean caseSensitive, boolean stopOnMatch)
String rewrite (String sqlQuery)

Detailed Description

This class defines a SimpleRewritingRule

Author:
Emmanuel Cecchet
Version:
1.0

Definition at line 33 of file SimpleRewritingRule.java.


Constructor & Destructor Documentation

org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule.SimpleRewritingRule String  queryPattern,
String  rewrite,
boolean  caseSensitive,
boolean  stopOnMatch
 

Creates a new SimpleRewritingRule.java object

Parameters:
queryPattern SQL pattern to match
rewrite rewritten SQL query
caseSensitive true if matching is case sensitive
stopOnMatch true if rewriting must stop after this rule if it matches.

Definition at line 47 of file SimpleRewritingRule.java.

00049   {
00050     super(queryPattern, caseSensitive ? rewrite : rewrite.toLowerCase(),
00051         caseSensitive, stopOnMatch);
00052     queryPatternLength = queryPattern.length();
00053   }


Member Function Documentation

String org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule.rewrite String  sqlQuery  )  [virtual]
 

See also:
org.objectweb.cjdbc.controller.backend.rewriting.AbstractRewritingRule.rewrite(java.lang.String)

Implements org.objectweb.cjdbc.controller.backend.rewriting.AbstractRewritingRule.

Definition at line 58 of file SimpleRewritingRule.java.

References org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule.rewrite().

Referenced by org.objectweb.cjdbc.controller.backend.rewriting.SimpleRewritingRule.rewrite().

00059   {
00060     // Check first if it is a match
00061     int start;
00062     if (isCaseSensitive)
00063       start = sqlQuery.indexOf(queryPattern);
00064     else
00065       start = sqlQuery.toLowerCase().indexOf(queryPattern.toLowerCase());
00066     if (start == -1)
00067     { // No match
00068       hasMatched = false;
00069       return sqlQuery;
00070     }
00071     // Match, rewrite the query
00072     hasMatched = true;
00073     if (start == 0)
00074     {
00075       if (queryPatternLength < sqlQuery.length())
00076         // Match at the beginning of the pattern
00077         return rewrite + sqlQuery.substring(queryPatternLength);
00078       else
00079         // The query was exactly the pattern
00080         return rewrite;
00081     }
00082     else
00083     {
00084       if (start + queryPatternLength < sqlQuery.length())
00085         return sqlQuery.substring(0, start) + rewrite
00086             + sqlQuery.substring(start + queryPatternLength);
00087       else
00088         // Match at the end of the pattern
00089         return sqlQuery.substring(0, start) + rewrite;
00090     }
00091   }


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:03:27 2005 for C-JDBC by  doxygen 1.3.9.1