Public Member Functions | |
SimpleRewritingRule (String queryPattern, String rewrite, boolean caseSensitive, boolean stopOnMatch) | |
String | rewrite (String sqlQuery) |
Definition at line 33 of file SimpleRewritingRule.java.
|
Creates a new
Definition at line 47 of file SimpleRewritingRule.java. 00049 { 00050 super(queryPattern, caseSensitive ? rewrite : rewrite.toLowerCase(), 00051 caseSensitive, stopOnMatch); 00052 queryPatternLength = queryPattern.length(); 00053 }
|
|
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 }
|